Flink 中的 advanceToEndOfEventTime 标志

advanceToEndOfEventTime flag in Flink

我正在查看最近 API 的 JobClient,我在方法 stopWithSavepoint 中看到 advanceToEndOfEventTime 标志。如果我理解正确,这将导致工作,例如基于时间的刷新 windows。因此,如果我们从这个保存点开始,作业将从 windows 开始,没有任何元素。在我当前的用例中,我不认为这是可取的——在我们所有的应用程序中,在重启后恢复状态是至关重要的。我想知道它的用例是什么?

这会很有用的一种情况是您知道工作已完成,并且不会有任何进一步的输入。如果源都是有限的,比如文件,Flink 会自动将当前水印推进到 Watermark.MAX_WATERMARK,然后停止作业。

但是对于可能无限的流媒体资源,这不会发生,即使它们是有界的——你想停止的工作只是坐在那里,等待更多的事件来处理(永远不会发生),并且保留您想要清除的最终结果集。 advanceToEndOfEventTime 选项可让您彻底关闭它。