当使用侧输出 DataStream 时,Flink 如何处理延迟事件?

How Flink deals with late events when as side-output DataStream is used?

在我看来,Flink 以 3 种方式处理延迟事件:

  1. 在 window 过期(默认)时删除延迟事件。
  2. 通过使用“允许迟到”机制包括迟到事件来更新 window。
  3. 使用“侧输出”机制将延迟事件重定向到另一个 DataStream。

假设我有一个事件时间作业,它使用来自 Kafka 的数据并每 5 分钟处理一次 window。现在,假设我将延迟事件重定向到另一个 DataStream。

谢谢大家!

来自 window 运算符的迟到事件流是一个独立的流,它只包含太迟以至于允许的迟到不足以容纳它们的事件。

你可以用这个流做任何你想做的事,包括通过另一个 window 发送它。但是这些事件仍然会迟到,因此您需要使用更宽松的策略来 re-generate 水印以防止它们仍然迟到,或者延长这个新 window.[= 的允许迟到时间。 10=]

Windows总是自己清理。