我正在实现一个用例,其中不同的物理设备正在发送事件,并且由于网络/电源问题,在 flink 源接收事件可能会有延迟。flink 作业中的运算符之一是 Pattern 运算符,并且有某些模式是时间敏感的,所以我使用 Event time 特性。但是,当来自特定设备的事件发生不可预测的延迟时,就会出现问题,这会导致这些事件被丢弃(因为我无法真正定义允许延迟的静态绑定)。
由于我使用的是基于源设备 ID 的 KeyedStream,因此有一种方法可以允许每个 CEP 操作员实例(每个键一个)根据相应流分区中的事件时间来推进其时间。或者换句话说,有没有办法在 KeyedStream 中为每个分区生成水印?