繁体   English   中英

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

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

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

  1. 当 window 过期时丢弃延迟事件(默认)。
  2. 通过包含具有“允许延迟”机制的延迟事件来更新 window。
  3. 使用“side output”机制将延迟事件重定向到另一个 DataStream。

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

  • 这个新的 DataStream 是独立的吗?
  • 是否可以将 window 分配给此 stream 以处理这些迟到的事件,假设每小时?
  • 如果可能的话,memory 在 window 发射后是否被释放?

谢谢你们!

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

你可以用这个 stream 做任何你想做的事情,包括通过另一个 window 发送它。 但是这些事件仍然会迟到,因此您需要使用更宽松的策略重新生成水印以防止它们仍然迟到,或者延长这个新的 window 的允许迟到。

Windows 总是自己清理之后。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM