时间语义
事件时间
数据产生的时间
处理时间
数据真正被处理的时刻
水位线(WaterMark)
概念

有序数据(理想)

乱序数据(现实)

处理迟到数据

水位线特性
学吧你就,一学一个不吱声

水位线和窗口的工作原理
每个窗口是独立的新桶,不是复用一个桶。可能会同时出现多个桶。

窗口并非事先创建好,而是动态创建的!!!桶2,当11来了时,才创建。

触发计算 和 窗口关闭 是两个动作!!
生成水位线
原则
对低延迟和结果正确性做权衡。
API


水位生成策略
有序
WatermarkStrategy.forMonotonousTimestamps()

乱序
WatermarkStrategy.forBoundedOutOfOrderness()

水位线生成原理
乱序

升序

原理

水位线的传递
1、watermark代表某个算子的进度
2、选并行度中最小的事件时间,作为水位线
3、下游多并行度,将水位线广播给下游

水位线空闲等待
因为水位线会选取并行度中水位线最小的,但是某个并行度长时间不来新数据,会导致水位线一直无法推进,窗口无法触发。
这里可以设置空闲等待时长,超过这个时间,则不再考虑

迟到数据处理

窗口允许迟到


推迟关窗
注意:和触发计算是两个动作,不影响触发计算
侧输出流

迟到数据总结


本文详细探讨了时间语义中的事件时间、水位线概念及其在处理有序和乱序数据中的应用。介绍了水位线的工作原理、生成策略,以及如何处理迟到数据和窗口的动态创建。还涉及了水位线的传递机制和空闲等待策略,以及迟到数据的管理和窗口的推迟关闭。
529

被折叠的 条评论
为什么被折叠?



