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

标签 apache-flink flink-streaming flink-cep

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

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

最佳答案

Flink 目前不支持按关键水印。水印是全局性的。

关于apache-flink - 是否可以在 KeyedStream (Apache Flink) 中为每个键生成水印?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47185372/

相关文章:

java - 全局窗口自定义触发器上的 allowedLateness

apache-kafka - 当我重新运行 Flink 消费者时,Kafka 再次消费最新的消息

java - Apache Flink,任务槽数与 env.setParallelism

scala - Apache 弗林克 : Creating a Lagged Datastream

java - flink SourceFunction<> 在 StreamExecutionEnvironment.addSource() 中被替换?

java - ProcessWindowFunction<IN, OUT, KEY, W> 上的 Flink 单元测试

hadoop - 具有 Hbase 表输入格式的 Flink DataSet api - 多次读取行

Scala WindowFunction 无法编译

apache-flink - Flink 如何处理 IterativeStream 中的检查点和状态?

apache-flink - 如何调试Flink中的可序列化异常?