| 滚动窗口 | TUMBLE,固定长度、不重叠 |
|---|---|
| 滑动窗口 | HOP,固定长度、可重叠 |
| 会话窗口 | SESSION,按活跃间隔切分 |
| 累计窗口 | CUMULATE,同一窗口内逐步累计输出 |
窗口选型
| 场景 | 推荐窗口 | 说明 |
|---|---|---|
| 每分钟订单量 | 滚动 1 分钟 | 互不重叠,最常用 |
| 近 5 分钟成交额(每 10 秒刷新) | 滑动 5 分钟、步长 10 秒 | 重叠计算,注意状态开销 |
| 用户会话行为分析 | 会话窗口 | 间隔超过阈值即切分 |
Flink SQL 窗口写法
Flink SQL 窗口写法
-- 滚动 1 分钟
GROUP BY TUMBLE(ts, INTERVAL '1' MINUTE)
-- 滑动:窗口 5 分钟、每 10 秒滑动一次
GROUP BY HOP(ts, INTERVAL '10' SECOND, INTERVAL '5' MINUTE)
-- 会话:静默 30 秒即切分
GROUP BY SESSION(ts, INTERVAL '30' SECOND)窗口大小与业务节奏对齐:支付风控看秒级,日报看天级,不要所有场景都套同一套窗口。