【问题标题】:How Flink deals with late events when as side-output DataStream is used?当使用侧输出 DataStream 时,Flink 如何处理延迟事件?
【发布时间】:2022-02-04 18:45:39
【问题描述】:

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

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

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

  • 这个新的 DataStream 是独立的吗?
  • 是否可以为此流分配一个窗口以处理这些迟到的事件(假设每小时)?
  • 如果可能,在触发此窗口后是否释放内存?

谢谢大家!

【问题讨论】:

    标签: java apache-flink flink-streaming


    【解决方案1】:

    来自窗口操作符的迟到事件流是一个独立的流,它只包含迟到以至于允许的迟到不足以容纳它们的事件。

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

    Windows 总是自行清理。

    【讨论】:

    • 好吧。因此,我还可以在该窗口流上定义自定义触发器并进行转换。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2021-10-05
    • 1970-01-01
    • 2023-03-27
    • 2020-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-21
    相关资源
    最近更新 更多