2017-01-23 108 views
3

將是有益的,如果有人給用例的例子來解釋每一個水印API與Apache的之間的差弗林克下面給出水印中的Apache弗林克

  • 週期水印 - AssignerWithPeriodicWatermarks [T]
  • 間斷水印 - AssignerWithPunctuatedWatermarks [T]

回答

4

兩種類型的水印之間的主要區別是如何/何時調用getWatermark方法。

定期水印

隨着週期性水印,弗林克在定期間隔調用getCurrentWatermark(),獨立的事件流的。該間隔使用

ExecutionConfig.setAutoWatermarkInterval(millis) 

上的處理時間使用這個類當你的水印依賴(甚至部分)定義,或者當你需要的水印,即使沒有事件/元素已經收到了,而發射。

間斷水印

了間斷水印,弗林克調用assignWatermark()後立即調用checkAndGetWatermark()每個新事件,即。僅當checkAndGetWatermark返回大於最後一個水印的非空值時纔會發出實際的水印。

這意味着如果您在一段時間內沒有收到任何新元素,則不會發出水印。

如果某些特殊元素用作表示事件時間進度的標記,並且您希望在某些事件中專門發出水印,則可以使用此類。例如,您可以在傳入流中標記標記序列的結尾。