当前位置:  开发笔记 > 运维 > 正文

Apache Flink中定期和间断水印有什么区别?

如何解决《ApacheFlink中定期和间断水印有什么区别?》经验,为你挑选了1个好方法。

如果有人给出用例来解释下面给出的每个Watermark API和Apache flink之间的区别,将会很有帮助

定期水印 - AssignerWithPeriodicWatermarks[T]

标点符号 - AssignerWithPunctuatedWatermarks[T]

Derlin.. 10

两种类型的水印之间的主要区别在于如何/何时getWatermark调用该方法.

周期性水印

随着周期性水印,弗林克称getCurrentWatermark(),在固定时间间隔,独立的事件流的.此间隔使用定义

ExecutionConfig.setAutoWatermarkInterval(millis)

当水印依赖(甚至部分)处理时间时,或者即使在一段时间内未收到任何事件/元素时也需要发出水印,请使用此类.

间断的水印

通过标点符号,Flink会调用checkAndGetWatermark() 每个新事件,即在调用之后立即调用assignWatermark().仅当checkAndGetWatermark返回大于最后一个水印的非空值时才发出实际水印.

这意味着如果您暂时没有收到任何新元素,则不会发出水印.

如果某些特殊元素充当表示事件时间进度的标记,并且您希望在特定事件中专门发出水印,则使用此类.例如,您可以在传入流中标记标记序列结尾的标记.



1> Derlin..:

两种类型的水印之间的主要区别在于如何/何时getWatermark调用该方法.

周期性水印

随着周期性水印,弗林克称getCurrentWatermark(),在固定时间间隔,独立的事件流的.此间隔使用定义

ExecutionConfig.setAutoWatermarkInterval(millis)

当水印依赖(甚至部分)处理时间时,或者即使在一段时间内未收到任何事件/元素时也需要发出水印,请使用此类.

间断的水印

通过标点符号,Flink会调用checkAndGetWatermark() 每个新事件,即在调用之后立即调用assignWatermark().仅当checkAndGetWatermark返回大于最后一个水印的非空值时才发出实际水印.

这意味着如果您暂时没有收到任何新元素,则不会发出水印.

如果某些特殊元素充当表示事件时间进度的标记,并且您希望在特定事件中专门发出水印,则使用此类.例如,您可以在传入流中标记标记序列结尾的标记.

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有