Tumble 滚动窗口有固定size,窗口数据不重叠,具体语义如下:

b. 语法
Tumble 滚动窗口对应的语法如下:
- SELECT
- [gk],
- [TUMBLE_START(timeCol, size)],
- [TUMBLE_END(timeCol, size)],
- agg1(col1),
- ...
- aggn(colN)
- FROM Tab1
- GROUP BY [gk], TUMBLE(timeCol, size)
- [gk] - 决定了流是Keyed还是/Non-Keyed;
- TUMBLE_START - 窗口开始时间;
- TUMBLE_END - 窗口结束时间;
- timeCol - 是流表中表示时间字段;
- size - 表示窗口的大小,如 秒,分钟,小时,天。
c. SQL 示例
利用pageAccess_tab测试数据,我们需要按不同地域统计每2分钟的淘宝首页的访问量(PV)。
- SELECT
- region,
- TUMBLE_START(rowtime, INTERVAL '2' MINUTE) AS winStart,
- TUMBLE_END(rowtime, INTERVAL '2' MINUTE) AS winEnd,
- COUNT(region) AS pv
- FROM pageAccess_tab
- GROUP BY region, TUMBLE(rowtime, INTERVAL '2' MINUTE)
d. Result

(2) Hop
Hop 滑动窗口和滚动窗口类似,窗口有固定的size,与滚动窗口不同的是滑动窗口可以通过slide参数控制滑动窗口的新建频率。因此当slide值小于窗口size的值的时候多个滑动窗口会重叠。
a. 语义
Hop 滑动窗口语义如下所示:

b. 语法
Hop 滑动窗口对应语法如下:
- SELECT
- [gk],
- [HOP_START(timeCol, slide, size)] ,
- [HOP_END(timeCol, slide, size)],
- agg1(col1),
- ...
- aggN(colN)
- FROM Tab1
- GROUP BY [gk], HOP(timeCol, slide, size)
- [gk] 决定了流是Keyed还是/Non-Keyed;
- HOP_START - 窗口开始时间;
- HOP_END - 窗口结束时间;
- timeCol - 是流表中表示时间字段;
- slide - 是滑动步伐的大小;
- size - 是窗口的大小,如 秒,分钟,小时,天;
c. SQL 示例
利用pageAccessCount_tab测试数据,我们需要每5分钟统计近10分钟的页面访问量(PV).
- SELECT
- HOP_START(rowtime, INTERVAL '5' MINUTE, INTERVAL '10' MINUTE) AS winStart,
- HOP_END(rowtime, INTERVAL '5' MINUTE, INTERVAL '10' MINUTE) AS winEnd,
- SUM(accessCount) AS accessCount
- FROM pageAccessCount_tab
- GROUP BY HOP(rowtime, INTERVAL '5' MINUTE, INTERVAL '10' MINUTE)
d. Result

(3) Session
Seeeion 会话窗口 是没有固定大小的窗口,通过session的活跃度分组元素。不同于滚动窗口和滑动窗口,会话窗口不重叠,也没有固定的起止时间。一个会话窗口在一段时间内没有接收到元素时,即当出现非活跃间隙时关闭。一个会话窗口 分配器通过配置session gap来指定非活跃周期的时长.
a. 语义
Session 会话窗口语义如下所示:

b. 语法
Seeeion 会话窗口对应语法如下:
- SELECT
- [gk],
- SESSION_START(timeCol, gap) AS winStart,
- SESSION_END(timeCol, gap) AS winEnd,
- agg1(col1),
- ...
- aggn(colN)
- FROM Tab1
- GROUP BY [gk], SESSION(timeCol, gap)
- [gk] 决定了流是Keyed还是/Non-Keyed;
- SESSION_START - 窗口开始时间;
- SESSION_END - 窗口结束时间;
- timeCol - 是流表中表示时间字段;
- gap - 是窗口数据非活跃周期的时长;
c. SQL 示例 (编辑:惠州站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|