
回复
作者 | antigeneral了呀
来源 | 大数据羊说(ID:young_say)
转载请联系授权(微信ID:___antigeneral)
大家好,我是老羊,今天我们来学习 Flink SQL 中的· Over 聚合操作。
那这里我们拿 Over 聚合
与 窗口聚合
做一个对比,其之间的最大不同之处在于:
注意:
其实在生产环境中,Over 聚合的使用场景还是比较少的。在 Hive 中也有相同的聚合,但是小伙伴萌可以想想你在离线数仓经常使用嘛?
Over 聚合的语法总结如下:
其中:
按照行数聚合
,第二种为按照时间区间聚合
。如下案例所示:a. ⭐ 时间区间聚合:
按照时间区间聚合就是时间区间的一个滑动窗口,比如下面案例 1 小时的区间,最新输出的一条数据的 sum 聚合结果就是最近一小时数据的 amount 之和。
结果如下:
b. ⭐ 行数聚合:
按照行数聚合就是数据行数的一个滑动窗口,比如下面案例,最新输出的一条数据的 sum 聚合结果就是最近 5 行数据的 amount 之和。
预跑结果如下:
当然,如果你在一个 SELECT 中有多个聚合窗口的聚合方式,Flink SQL 支持了一种简化写法,如下案例: