从0到1Flink的成长之路(十八)-Flink Window
Posted 熊老二-
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从0到1Flink的成长之路(十八)-Flink Window相关的知识,希望对你有一定的参考价值。
Flink Window
Flink 认为 Batch 是 Streaming 的一个特例,所以 Flink 底层引擎是一个流式引擎,在上面
实现了流处理和批处理。而窗口(window)就是从 Streaming 到 Batch 的一个桥梁,Flink 提
供了非常完善的窗口机制。
1 为什么需要Window
在流处理应用中,数据是连续不断的,有时需要做一些聚合类的处理,例如:在过去的1分钟内有多少用户点击了的网页。
在这种情况下,必须定义一个窗口(window),用来收集最近1分钟内的数据,并对这个窗口内的数据进行计算。
2 Window 分类
2.1 Time和count分类
time-window(时间窗口):根据时间划分窗口,如每xx分钟统计,最近xx分钟的数据;
count-window(计数窗口):根据数量划分窗口,如每xx个数据统计,最近xx个数据;
2.2 slide和size 分类
窗口有两个重要的属性: 窗口大小size和滑动间隔slide,根据它们的大小关系可分为:
tumbling-window(滚动窗口):size=slide,如每隔10s统计最近10s的数据
sliding-window(滑动窗口):size>slide,如每隔5s统计最近10s的数据;
2.3 总结
按照上面窗口的分类方式进行组合,可以得出如下的窗口:
1.基于时间的滚动窗口tumbling-time-window:用的较多
2.基于时间的滑动窗口sliding-time-window:用的较多
3.基于数量的滚动窗口tumbling-count-window:用的较少
4.基于数量的滑动窗口sliding-count-window:用的较少
注意:Flink还支持一个特殊的窗口:Session会话窗口,需要设置一个会话超时时间,如30s则表示30s内没有数据到来,则触发上个窗口的计算。
以上是关于从0到1Flink的成长之路(十八)-Flink Window的主要内容,如果未能解决你的问题,请参考以下文章