【问题标题】:Is it possible to generate watermarks per key in a KeyedStream (Apache Flink)?是否可以在 KeyedStream (Apache Flink) 中为每个键生成水印?
【发布时间】:2017-11-08 16:53:46
【问题描述】:

我正在实现一个用例,其中不同的物理设备正在发送事件,并且由于网络/电源问题,在 flink 源接收事件可能会有延迟。 flink 作业中的运算符之一是 Pattern 运算符,并且有某些模式是时间敏感的,所以我使用 Event time 特性。但是,当来自特定设备的事件发生不可预测的延迟时,问题就出现了,这会导致这些事件被丢弃(因为我无法真正定义允许延迟的静态绑定)。

由于我使用的是基于源设备 ID 的 KeyedStream,有没有办法允许每个 CEP 操作员实例(每个键一个)根据相应流分区中的事件时间推进其时间。或者换句话说,有没有办法在 KeyedStream 中为每个分区生成水印?

【问题讨论】:

    标签: apache-flink flink-streaming flink-cep


    【解决方案1】:

    Flink 目前不支持 per key watermarks。水印是全局的。

    【讨论】:

    • 您如何看待这里提出的实现此功能的 RichFlatMapFunction 方法? apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/…
    • 您必须在用户代码中实现它,这意味着用户代码会生成“水印”并对其进行处理。但是,这意味着您不能将它与 Flink 的内置窗口机制一起使用。如果您需要使用每个键水印的窗口,那么您还必须自己实现窗口机制。
    猜你喜欢
    • 1970-01-01
    • 2020-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-30
    • 2019-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多