大数据(9e)图解Flink窗口

大数据(9e)图解Flink窗口,第1张

大数据(9e)图解Flink窗口

文章目录
  • 1、窗口的分类
    • 1.1、基于时间的窗口
    • 1.2、基于事件个数的窗口
  • 2、时间语义
  • 3、WaterMark(水位线)
    • 3.1、WaterMark策略
    • 3.2、WaterMark与窗口
  • 4、其它

1、窗口的分类
  • 将 无界限的 数据 切分为 有界限的 数据
  • https://yellow520.blog.csdn.net/article/details/121288240
1.1、基于时间的窗口

基于时间的滑动窗口

.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、时间语义

时间语义直译说明Event Time时间时间事件发生的时间Process Time处理时间事件发生后,进入到程序(窗口)

事 件 时 间 < 处 理 时 间 事件时间<处理时间 事件时间<处理时间

3、WaterMark(水位线)
  • WaterMark,可译为水位线,用来标记水流的事件时间进度
  • WaterMark作为数据流的一部分在流动,并且携带一个时间戳t
    WaterMark(t)表示流的事件时间已经到达t,后续数据的事件时间应当大于t

有序流中的水印

乱序流中的水印

W(t)表示流的事件时间已经到达t,后续不应出现时间时间小于t的数据

3.1、WaterMark策略

3.2、WaterMark与窗口
  1. WaterMark触发窗口计算
  2. 窗口允许迟到的数据
  3. 侧输出流(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≥(窗口结束时间+允许迟到时间) ,会关闭窗口
4、其它 窗口函数窗口关闭时,窗口函数就去处理窗口中的每个元素ReduceFunction增量处理,高效AggregateFunction增量处理,高效ProcessWindowFunction函数执行前要在内部缓存窗口上所有的元素,低效 Keyed vs Non-Keyed Windows比较在keyed streams上使用窗口在non-keyed stream上使用窗口在non-keyed stream上使用窗口并行度=1

多并行度下WaterMark的更新和传递

从所有分区中取事件时间最小的WaterMark来广播WaterMark

encnwatermarkˈwɔːtərmɑːrkn. 水印;水位标志;vt. 在……上印水印(图案)gapɡæpn. 缝隙,缺口;(时间上的)间隔tumblingˈtʌmblɪŋn. 翻腾运动tumbleˈtʌmblv. 翻滚;n. 跌倒,滚落;(数量、价值)暴跌;混乱,杂乱;翻跟头in order按顺序out of order次序颠倒

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5665657.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存