色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

Flink如何處理亂序數據?

榮姿康2年前12瀏覽0評論

Flink作為一款大數據流式處理框架,Flink是基于其WaterMark(水印)來處理亂序數據的。WaterMark是一種特殊的消息記錄,本身有一個時間截屬性,WaterMark表示所有事件時間小于該水印的時間的記錄都已經到達Flink系統,隨后開始觸發計算。

Flink使用WaterMark處理亂序事件,使得一些基于時間的計算不會一直等待記錄

Flink中數據亂序是指消息事件雖然按照時間順序產生,但真正進入Flink系統處理時,沒有按照產生的時間順序來到。這其中有很多原因,比如網絡IO傳播,機器故障等等。

Flink中有三種時間類型,數據攝入到Flink的時間、數據處理的時間、數據的產生事件時間。亂序則是使用的數據的事件時間,在使用事件時間時,一般消息記錄中要有時間字段屬性,表示數據記錄真實產生的時間。

Flink中一般窗口操作使用事件時間比較多。每一個窗口其實都有一個開始的時間和結束的時間,當Flink窗口算子的WaterMark的時間截大于窗口結束的時間時,這個窗口開始出發。FlinkWaterMark一般會比真實的事件時間延遲個1、2秒,所以當WaterMark的時間截為T時,之后所有小于T時間的記錄,都會被丟棄掉,不進入窗口計算。

Flink也可以使用狀態來保存數據,通過Timer來進行觸發計算

當消息記錄進入Flink系統時,可以先不對其進行處理,把記錄保存在Flink狀態中。使用ProcessFuntion函數,在其中可以注冊Timer,比如5秒后開始計算,然后從狀態中讀取原來的記錄,根據業務邏輯來編寫具體的函數邏輯。

個人想法

Flink計算引擎目前在大數據領域非常火熱,很多公司都使用Flink作為公司的實時流計算引擎,比如阿里巴巴、頭條、騰訊等,尤其是阿里巴巴,國內Flink社區運營也主要是阿里巴巴在主導運營,你在學習大數據時,可以將Flink作為自己學習的第一框架。

我是Lake,專注大數據技術原理、人工智能、數據庫技術、程序員經驗分享,如果我的問答對你有幫助的話,希望你能點贊關注我,感謝。

我會持續大數據、數據庫方面的內容,如果你有任何問題,也私信我,我會認真解答每一個問題。期待您的關注