- 1、窗口的分类
- 1.1、基于时间的窗口
- 1.2、基于事件个数的窗口
- 2、时间语义
- 3、WaterMark(水位线)
- 3.1、WaterMark策略
- 3.2、WaterMark与窗口
- 4、其它
- 将 无界限的 数据 切分为 有界限的 数据
- https://yellow520.blog.csdn.net/article/details/121288240
基于时间的滑动窗口
.window(SlidingProcessingTimeWindows.of(Time.seconds(6),Time.seconds(3)))
基于时间的滚动窗口
.window(TumblingProcessingTimeWindows.of(Time.seconds(3)))
基于时间的会话窗口
.window(ProcessingTimeSessionWindows.withGap(Time.seconds(2)))
基于时间的全局窗口
.window(GlobalWindows.create())1.2、基于事件个数的窗口
基于事件个数的滑动窗口
.countWindow(4,3)
基于事件个数的滚动窗口
.countWindow(4)2、时间语义
事 件 时 间 < 处 理 时 间 事件时间<处理时间 事件时间<处理时间
3、WaterMark(水位线)- WaterMark,可译为水位线,用来标记水流的事件时间进度
- WaterMark作为数据流的一部分在流动,并且携带一个时间戳t
WaterMark(t)表示流的事件时间已经到达t,后续数据的事件时间应当大于t
有序流中的水印
3.1、WaterMark策略 3.2、WaterMark与窗口乱序流中的水印
W(t)表示流的事件时间已经到达t,后续不应出现时间时间小于t的数据
- WaterMark触发窗口计算
- 窗口允许迟到的数据
- 侧输出流(sideOutput):处理关窗之后到达的数据
- W a t e r M a r k ≥ 窗 口 结 束 时 间 WaterMark ge 窗口结束时间 WaterMark≥窗口结束时间 ,会触发窗口计算
-
窗
口
结
束
时
间
<
W
a
t
e
r
M
a
r
k
<
(
窗
口
结
束
时
间
+
允
许
迟
到
时
间
)
窗口结束时间 lt WaterMark lt (窗口结束时间 + 允许迟到时间)
窗口结束时间
- W a t e r M a r k ≥ ( 窗 口 结 束 时 间 + 允 许 迟 到 时 间 ) WaterMark ge (窗口结束时间 + 允许迟到时间) WaterMark≥(窗口结束时间+允许迟到时间) ,会关闭窗口
多并行度下WaterMark的更新和传递
从所有分区中取事件时间最小的WaterMark来广播WaterMark
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)