Flink WaterMark机制与Allowed Lateness机制详细介绍

个人理解:watermark是全局机制针对所有的key,如果要解决同一个key的乱序迟到问题就需要用到Allowed Lateness机制。

因为一般都是按照某个key分组,需要的也是解决同一个key的乱序迟到问题。

 

https://blog.csdn.net/yangxiaobo118/article/details/100173001

Flink的窗口处理流式数据虽然提供了基础EventTime的WaterMark机制,但是只能在一定程度上解决数据乱序问题。而某些极端情况下数据延迟会非常严重,即便通过WaterMark机制也无法等到数据全部进入窗口再进行处理。默认情况下,Flink会将这些严重迟到的数据丢弃掉;如果用户希望即使数据延迟到达,也能够按照流程处理并输出结果,此时可以借助Allowed Lateness机制来对迟到的数据进行额外的处理。
Out Of Order&Late
其都是为了处理乱序问题而产生的概念,区别如下:

通过watermark机制来处理out-of-order的问题,属于第一层防护,属于全局性的防护,通常说的乱序问题的解决办法,就是指这类;
通过窗口上的allowedLateness机制来处理out-of-order的问题,属于第二层防护,属于特定window operator的防护,late element的问题就是指这类。

 

posted @ 2020-04-09 09:17  再见傅里叶  阅读(806)  评论(0编辑  收藏  举报