如果数据源有一段时间没有发出数据,Flink算子的水印是否一直在前进?

问题描述

watermark

只是好奇,如果数据源有一段时间没有发出数据,Flink算子是否仍然收到水印?图片中的 Low Watermark 会继续前进还是保持静止?

解决方法

当源完全空闲时水印是否会继续前进取决于WatermarkStrategy。在这些情况下,内置策略(即 BoundedOutOfOrdernessMonotonousTimestamps)都不会推进水印,但有些人使用自定义策略来检测空闲并根据墙的通过推进水印 -时钟时间。

如果一些源分区/分片/分片空闲而另一些则没有,那么这可能导致水印无法推进。某些来源支持实施 withIdleness 选项的水印策略,该选项可克服此问题 [1]。

[1] https://ci.apache.org/projects/flink/flink-docs-stable/dev/event_timestamps_watermarks.html#dealing-with-idle-sources

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...