Flink窗口学习及相关示例(更新中)
·
前言
本文介绍Flink窗口以及对应的窗口处理函数。
多数为学习Flink官网后的个人理解。
如有错误或值得优化的地方欢迎指正。
版本说明
Flink 2.1.0
Java 11
概念介绍
窗口(Window)是处理无界流的关键所在。窗口可以将数据流装入大小有限的“桶”中,再对每个“桶”加以处理。
1. 根据stream类型决定窗口后续操作
- keyed stream
- non-keyed stream
大多数情况都是keyed stream。
2. Window Assigner
理解Flink window assigner的重点在于理解生成新窗口频率的条件。
Flink有现成的四种窗口,另外如有特殊需求可以继承window assigner,来自定义窗口。
- 滚动窗口(Tumbling Windows)
. 条件:间隔固定时间计算一次,offset或许能实际应用。
- 滚动窗口使用示例
- offset使用示例
- 滑动窗口(Sliding Windows)
条件:滑动距离(window slide)参数来控制生成新窗口的频率。
注意:如果 slide 小于窗口大小,滑动窗口可以允许窗口重叠。 -
会话窗口(Session Windows)
-
全局窗口(Global Windows)
- 自定义窗口
自定义窗口相关内容本文不过多涉及,详情可以查看Flink官方文档。
3. 窗口函数(Window Functions)
高阶用法
更多推荐


所有评论(0)