首页 > 大数据 > Hadoop > Flink SQL - 分组窗口聚合 TVF
Flink SQL 中的分组窗口聚合 TVF 是一种新的窗口聚合方式,用于替代旧版的窗口分组语法。TVF 是表值函数的缩写,表示返回值是一张表的函数。
窗口聚合 TVF 可以按照不同类型的窗口函数对数据进行分组和聚合,例如:
TUMBLE:滚动窗口函数,按照固定的时间间隔对数据进行分组和聚合。例如:SELECT window_start, window_end, SUM(price) AS totalFROM TABLE(TUMBLE(TABLE bid, DESCRIPTOR(bidtime), INTERVAL '10' MINUTES))GROUP BY window_start, window_end;复制
HOP:滑动窗口函数,按照固定的时间间隔和滑动步长对数据进行分组和聚合。例如:SELECT window_start, window_end, SUM(price) AS totalFROM TABLE(HOP(TABLE bid, DESCRIPTOR(bidtime), INTERVAL '5' MINUTES, INTERVAL '10' MINUTES))GROUP BY window_start, window_end;复制
CUMULATE:累积窗口函数,按照固定的时间间隔和最大保留时间对数据进行分组和聚合,每个窗口包含了之前所有的数据。例如:(注意: 窗口最大长度 = 累积步长的整数倍)SELECT window_start, window_end, SUM(price) AS totalFROM TABLE(CUMULATE(TABLE bid, DESCRIPTOR(bidtime), INTERVAL '5' MINUTES, INTERVAL '10' MINUTES))GROUP BY window_start, window_end;复制
SESSION:会话窗口函数,按照指定的会话间隔对数据进行分组和聚合,如果两条数据之间的时间差超过会话间隔,就会创建一个新的窗口。例如:SELECT window_start, window_end, SUM(price) AS totalFROM TABLE(SESSION(TABLE bid, DESCRIPTOR(bidtime), INTERVAL '10' MINUTES))GROUP BY window_start, window_end;复制
窗口聚合 TVF 的优点是:
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70024433/viewspace-2965725/ ,如需转载,请注明出处,否则将追究法律责任。