是否可以在 KeyedStream (Apache Flink) 中为每个键生成水印?

Is it possible to generate watermarks per key in a KeyedStream (Apache Flink)?

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

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

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