Apache flink Flink了解后期事件vs水印

Apache flink Flink了解后期事件vs水印,apache-flink,flink-streaming,Apache Flink,Flink Streaming,看它说关于水印 我们现在将水印设置为当前时间-5秒,这将告诉Flink预期消息 最长为5秒-这是因为只有水印通过每个窗口时才会对其进行计算 在后面的文章中,它解释了当设置允许迟到时: Flink不会丢弃消息,除非它超过了窗口\u结束\u时间+允许的延迟时间 由于设置了允许的延迟,是否实际导致对窗口的评估延迟 那么,水印的使用和允许的延迟到底有什么区别呢?何时使用哪个?水印延迟设置了Flink在第一次触发窗口之前等待无序事件的时间下限 允许的迟到时间决定了Flink在窗口状态下的停留时间。在窗口

看它说关于水印

我们现在将水印设置为当前时间-5秒,这将告诉Flink预期消息 最长为5秒-这是因为只有水印通过每个窗口时才会对其进行计算

在后面的文章中,它解释了当设置允许迟到时:

Flink不会丢弃消息,除非它超过了窗口\u结束\u时间+允许的延迟时间

由于设置了允许的延迟,是否实际导致对窗口的评估延迟

那么,水印的使用和允许的延迟到底有什么区别呢?何时使用哪个?

水印延迟设置了Flink在第一次触发窗口之前等待无序事件的时间下限

允许的迟到时间决定了Flink在窗口状态下的停留时间。在窗口状态仍然可用时出现的任何延迟事件都将再次触发窗口,使其产生更新的结果

一旦允许的延迟过期,窗口的状态将被清除,任何极晚的事件将被丢弃或发送到一个侧面输出

如果窗口输出的下游使用者可以像这样处理接收窗口结果的更新(例如,窗口连接到实时仪表板),那么设置相对较短的水印延迟并自由使用允许的延迟可能是有意义的。另一方面,如果在初始结果之后无法利用任何信息,则需要使水印延迟足够大,以满足准确性/完整性要求,并将允许延迟设置为零