flink水印的產生方式

2021-09-27 15:49:18 字數 473 閱讀 2689

assignerwithpunctuatedwatermarks:每乙個event到來的時候,就會提取一次watermark

assignerwithperiodicwatermarks: 可以定義乙個最大允許亂序的時間,

生成水印的間隔(每n毫秒)使用 executionconfig.setautowatermarkinterval(…)。每次呼叫分配器的方法 getcurrentwatermark(),如果返回的水印非空並且大於先前的水印,則將發出新的水印。

ascendingtimestampextractor適用於時間戳遞增的情況

boundedoutofordernesstimestampextractor適用於亂序但最大延遲已知的情況

水印的意義在於制定乙個等待亂序的原則(到底等多久),而不是徹底解決亂序

Flink 事件 水印 計算的關係

看了好久的對水印的介紹,總結出以下的關係。水印 用於衡量事件時間進度的機制 為了解決亂序事件輸出正確的結果。事件 水印 計算的關係 事件生成水印的策略 1 遞增式的水印生成,適合遞增的資料,如果有不遞增的資料,那麼會被認為壞資料處理 2 週期計算,每次生成通過 週期大小,比如設定的週期是10s,那麼...

Flink水印機制(watermark)

flink流處理時間方式 設定flink流處理的時間型別 env.setstreamtimecharacteristic timecharacteristic.eventtime 問題 1.使用時間視窗來統計10分鐘內的使用者流量 2.有乙個時間視窗 3.有乙個資料,因為網路延遲 4.時間視窗並沒有...

flink 不設定水印 flink中的兩種水印

在flink中的時間視窗中有個重要概念,就是watermark,也就是我們經常談論的水印,這裡我們不對水印的概念和使用方式進行介紹,這裡從原始碼的角度來看,如何不斷的生成水印。在flink中,有兩種水印timestampsandpunctuatedwatermarksoperator timesta...