在上一篇文章Flink 之 滚动窗口/滑动窗口/会话窗口/OVER窗口中分别介绍了 滚动窗口、滑动窗口、会话窗口以及OVER窗口,接下来本篇文章给大家介绍一下窗口中的最后一种:级联窗口。
一、概述
在 Flink 中,级联窗口是指多个窗口之间存在包含或重叠关系的数据处理模式。它允许我们在不同的时间范围内对数据进行聚合和分析。简单来说,就是将数据流分割成多个时间段(窗口)来处理,这些窗口可以是嵌套的,也可以是重叠的。
想象一下,我们有一个实时数据流,包含用户的点击数据。我们可能希望在不同的时间粒度上进行分析,比如每分钟、每小时和每天的点击量统计。级联窗口允许我们同时进行这些不同时间粒度的统计,而不需要多次遍历数据,这样可以复用中间计算结果,避免重复消费数据。
二、案例
请注意,Rowtime 列在经过窗口操作后,其 Event Time 属性将丢失,为了在下一个窗口继续使用水印功能,可以使用辅助函数 TUMBLE_ROWTIME