Flink SQL 支持三种窗口类型, 分别为 Tumble Windows / HOP Windows 和 Session Windows. 其中 HOP windows 对应 Table API 中的 Sliding Window, 同时每种窗口分别有相应的使用场景和方法.
Tumble Windows | HOP Window | Session Windows | |
---|---|---|---|
TUMBLE(time_attr, interval) | HOP(time_attr, interval1,interval2) | HOP(time_attr, interval) |
下面用几段代码演示如何使用上面 3组 API. 完整的代码见 Github
首先填充一点测试数据
1 | // 初始数据 字段解释 -> (timeStamp , name , value) |
然后是转换为 Table
1 | //这里需要注意的是 如果采用了EventTime, 那么 对应字段后面加 .rowtime, 否则加 .proctime |
Tumble Windows
1 | // GROUP BY TUMBLE(t, INTERVAL '10' SECOND) 相当于根据10s的时间来划分窗口 |
HOP Windows
1 | // HOP(time_attr, interval1, interval2) |
Session Windows
1 | // SESSION(time_attr, interval) |