【发布时间】:2021-05-28 13:13:31
【问题描述】:
目前我的理解是,在 Flink 中处理延迟数据有 3 种方式:
-
删除迟到的事件(这是事件时间窗口操作符的默认行为。因此,迟到的元素不会创建新窗口。)
-
重定向迟到的事件(迟到的事件也可以使用侧输出功能重定向到另一个数据流)
-
通过包含延迟事件更新结果(重新计算不完整的结果并发出更新)
我不太了解非窗口运算符的延迟事件会发生什么,尤其是在源处分配时间戳时。 这里我有一个 FlinkKafkaConsumer :
new FlinkKafkaConsumer(
liveTopic,
deserializer,
config.toProps
).setStartFromTimestamp(startOffsetTimestamp)
.assignTimestampsAndWatermarks(
WatermarkStrategy
.forBoundedOutOfOrderness[String](Duration.ofSeconds(20))
)
如果我的 Kafka 分区中的某些数据出现乱序,比如记录附加的时间戳晚 1 分钟,这些数据会在 Flink 使用时被丢弃吗? 我可以配置某种 allowedLatness 吗(例如使用窗口运算符)?
【问题讨论】:
标签: apache-flink flink-streaming