Flink:使用 CSV 文件的事件时间聚合

Flink: Event-Time Aggregations with CSV file

我将 Flink 1.11.3 与 SQL API 和 Blink 规划器一起使用。我在流模式下工作,使用文件系统连接器和 CSV 格式的 CSV 文件。对于时间列,我生成水印并希望根据这个时间进行 window 聚合。比如根据事件时间快进过去。

val settings = EnvironmentSettings.newInstance().inStreamingMode().useBlinkPlanner().build()

是否必须为此对时间列进行排序,因为逐行消耗,如果不排序,可能会发生延迟事件,从而导致行丢失?

我也对CDC connector of Ververica这个问题感兴趣。也许我可以联系到知道这件事的人。 一开始,它拍摄表的快照,然后将这些行作为更改事件发出。关于事件时间的正确处理是什么?它们的发射顺序是什么?

是的,当 运行在流模式下你 运行 有延迟事件的风险,SQL API 在做事件时间时会降低事件的风险开窗。

既然输入的是一个文件,为什么不运行批处理模式的作业,完全避免这个问题呢?否则,您的选择包括对输入进行排序(按时间),或确保配置水印以避免延迟事件。

至于 CDC 连接器产生的事件顺序,我不知道。