如果有人提供用例示例来说明每个Watermark API与下面给出的Apache flink之间的区别,将很有帮助
AssignerWithPeriodicWatermarks[T]
AssignerWithPunctuatedWatermarks[T]
两种类型的水印之间的主要区别在于getWatermark
调用方法的方式/时间。
周期性水印
随着周期性水印,弗林克称getCurrentWatermark()
,在固定时间间隔,独立的事件流的。该间隔使用
ExecutionConfig.setAutoWatermarkInterval(millis)
当您的水印(甚至部分地)取决于处理时间时,或者当您需要发送水印时,即使一段时间没有收到任何事件/元素,都可以使用此类。
标点符号
带有标点符号的水印,FlinkcheckAndGetWatermark()
在每个新事件上调用,即在调用之后assignWatermark()
。仅当checkAndGetWatermark
返回的非空值大于最后一个水印时,才会发出实际水印。
这意味着,如果一段时间内未收到任何新元素,则不会发出水印。
如果某些特殊元素充当表示事件时间进度的标记,并且要在特定事件上专门发出水印,请使用此类。例如,您可以在传入流中具有标记序列结束的标志。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句