Flink如何解决数据迟到问题?

提问者:帅平 问题分类:面试刷题
Flink如何解决数据迟到问题?
1 个回答
什么放弃治疗
什么放弃治疗
迟到数据可以说是一种特殊的乱序数据,它没有被watermark和Window机制处理,因为是在窗口关闭后才到达的数据。一般这种情况有三种处理办法:
(1)重新激活已经关闭的窗口并重新计算以修正结果。
(2)将迟到数据收集起来另外处理。
(3)将迟到数据视为错误消息并丢弃。
Flink默认采用第三种方法,将迟到数据视为错误消息丢弃。想要使用前两种方法需要使用到sideOutput机制和allowedLateness机制。
sideOutput机制可以将迟到事件单独放入一个数据流分支,这会作为 window 计算结果的副产品,以便用户获取并对其进行特殊处理。
allowedLateness机制允许用户设置一个允许的最大迟到时长。Flink 会在窗口关闭后一直保存窗口的状态直至超过允许迟到时长,这期间的迟到事件不会被丢弃,而是默认会触发窗口重新计算。
发布于:3个月前 (02-06) IP属地:四川省
我来回答