主题
流式计算
窗口聚合类的边缘计算用 StreamSQL 节点表达:SQL 写清楚「什么窗口、什么聚合、什么条件」,网关在数据流上持续求值。
为什么在边缘做
- 1s 采一次的温度,云端只要 15 分钟均值——带宽与云端存储双降
- 断网期间的聚合不缺块:窗口在网关本地滚动,补传的是结果
- 带宽受限的 4G / NB 场景,上行条数可控
用法
规则链里挂一个 StreamSQL 节点,SQL 形如:
sql
-- 每 15 分钟一个滚动窗口的需量
SELECT deviceId, MAX(power) AS demand
FROM stream
GROUP BY deviceId, TumblingWindow('15m')
-- 滑动均值平滑毛刺
SELECT deviceId, AVG(temperature) AS tempAvg
FROM stream
WHERE quality = 'good'
GROUP BY deviceId, SlidingWindow('5m', '1m')支持窗口(滚动 / 滑动)、聚合(SUM / AVG / MIN / MAX / COUNT)、分组、过滤、模式识别(MATCH_RECOGNIZE,事件序列)与流-表 JOIN 富化。
死区与锁存
上报类计算内置两个抑制器,避免「聚合值微小抖动刷屏」:
- 死区(deadband):变化量小于阈值不输出
- 锁存:同键输出保持,直到变化超阈值或超时
与告警的关系
StreamSQL 的输出是普通消息:可以直接接告警判断(如「5 分钟均温超限」比单点瞬时值更稳),也可以继续走北向上报。连续事件序列(如「温度先升后降且伴随电流跌落」)用模式识别表达。