Flink SQL支持哪些窗口函数?

提问者:帅平 问题分类:面试刷题
Flink SQL支持哪些窗口函数?
2 个回答
忆雪
忆雪
支持的窗口函数有:
1、滚动窗口:固定大小,不重叠的时间窗口
SELECT 
    TUMBLE_START(ts, INTERVAL '1' HOUR) AS window_start,
    TUMBLE_END(ts, INTERVAL '1' HOUR) AS window_end,
    SUM(amount) AS total
FROM orders
GROUP BY TUMBLE(ts, INTERVAL '1' HOUR);
2、滑动窗口:固定大小且按步长滑动的窗口,窗口间可重叠
SELECT 
    HOP_START(ts, INTERVAL '5' MINUTE, INTERVAL '1' HOUR) AS window_start,
    SUM(amount) AS total
FROM orders
GROUP BY HOP(ts, INTERVAL '5' MINUTE, INTERVAL '1' HOUR);
发布于:1个月前 (05-16) IP属地:
对的时间对的人
对的时间对的人
3、会话窗口:通过不活动间隙切分数据,动态窗口大小
SELECT 
    SESSION_START(ts, INTERVAL '10' MINUTE) AS window_start,
    COUNT(user_id) AS visits
FROM user_clicks
GROUP BY SESSION(ts, INTERVAL '10' MINUTE);
4、累积窗口:再固定窗口内份阶段输出结果
SELECT 
    CUMULATE_START(ts, INTERVAL '1' HOUR, INTERVAL '10' MINUTE) AS window_start,
    SUM(amount) AS partial_total
FROM orders
GROUP BY CUMULATE(ts, INTERVAL '1' HOUR, INTERVAL '10' MINUTE);
发布于:1个月前 (05-16) IP属地:
我来回答