国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Flink中,為什么要有 Watermark?

2023-08-16 14:41 作者:ingemar-  | 我要投稿

為什么要有 Watermark?

當(dāng) flink 以?EventTime?模式處理流數(shù)據(jù)時,它會根據(jù)數(shù)據(jù)里的時間戳來處理基于時間的算子。但是由于網(wǎng)絡(luò)、分布式等原因,會導(dǎo)致數(shù)據(jù)亂序的情況。如下圖所示:


Flink中的WaterMark


只要使用event time,就必須使用watermark,在上游指定,比如:source、map算子后

基本概念

Watermark的核心本質(zhì)可以理解成一個延遲觸發(fā)機(jī)制。

我們知道,流處理從事件產(chǎn)生,到流經(jīng)source,再到operator,中間是有一個過程和時間的,雖然大部分情況下,流到operator的數(shù)據(jù)都是按照事件產(chǎn)生的時間順序來的,但是也不排除由于網(wǎng)絡(luò)背壓等原因,導(dǎo)致亂序的產(chǎn)生,所謂亂序,就是指Flink接收到的事件的先后順序不是嚴(yán)格按照事件的Event Time順序排列的

我們來設(shè)想一下下面這個場景:

使用時間窗口來統(tǒng)計10分鐘內(nèi)的用戶流量

有一個時間窗口

  • 開始時間為:2017-03-19 10:00:00

  • 結(jié)束時間為:2017-03-19 10:10:00

有一個數(shù)據(jù),因為網(wǎng)絡(luò)延遲

  • 事件發(fā)生的時間為:2017-03-19 10:10:00

  • 但進(jìn)入到窗口的時間為:2017-03-19 10:10:02,延遲了2秒中

時間窗口并沒有將59這個數(shù)據(jù)計算進(jìn)來,導(dǎo)致數(shù)據(jù)統(tǒng)計不正確

根據(jù)窗口計算時間的不同,這個數(shù)據(jù)都會被遺漏,只是:

  • 如果按照處理時間來計算,這個窗口在系統(tǒng)時間大于2017-03-19 10:10:00的時候就會關(guān)閉,延遲進(jìn)來的這個59會被忽略

  • 如果按照事件時間來計算,這個窗口當(dāng)進(jìn)入一條數(shù)據(jù),其事件時間大于2017-03-19 10:10:00的時候,會導(dǎo)致窗口關(guān)閉,同樣因為這個59延遲了,會因為別的正常順序的數(shù)據(jù)進(jìn)入Flink而導(dǎo)致屬于它的窗口被提前關(guān)閉

也就是:

處理時間窗口,按照當(dāng)前系統(tǒng)時間來判斷進(jìn)行窗口關(guān)閉

事件時間窗口,按照進(jìn)入數(shù)據(jù)的事件時間來判斷是否關(guān)閉窗口,如果進(jìn)來的一條新數(shù)據(jù)是下一個窗口的數(shù)據(jù),那么會關(guān)閉上一個窗口

總結(jié):

watermark是水印,也稱水位線。用來測量事件時間的進(jìn)度。

watermark作為數(shù)據(jù)流中的一部分在流動,并且攜帶一個時間戳t。

watermark(t) 表示這個流里面事件時間已經(jīng)到了時間t,意味著流中不應(yīng)該存在時間戳t2<=t的數(shù)據(jù)。

觸發(fā)窗口等的計算、關(guān)閉

單調(diào)遞增的(時間不能倒退)

用來處理數(shù)據(jù)亂序的問題


Flink中,為什么要有 Watermark?的評論 (共 條)

分享到微博請遵守國家法律
信宜市| 东乌| 高雄市| 西宁市| 古交市| 靖西县| 洱源县| 桂平市| 兰西县| 吉隆县| 靖安县| 宜宾市| 崇文区| 沂南县| 师宗县| 永泰县| 体育| 延津县| 青神县| 偏关县| 龙泉市| 铁岭县| 兴国县| 苍梧县| 越西县| 岳普湖县| 微博| 巴彦县| 南澳县| 繁昌县| 河北省| 漳州市| 乌苏市| 寿阳县| 法库县| 利辛县| 乐业县| 开原市| 赫章县| 新龙县| 四平市|