最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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?的評論 (共 條)

分享到微博請遵守國家法律
太仆寺旗| 井陉县| 南安市| 修文县| 吴江市| 永嘉县| 壶关县| 阿拉善右旗| 康乐县| 济源市| 托克托县| 奉新县| 临猗县| 兴业县| 六盘水市| 巴南区| 澜沧| 隆德县| 连城县| 清河县| 葵青区| 巨鹿县| 红桥区| 孝义市| 金门县| 丹寨县| 中卫市| 镇沅| 五莲县| 临沭县| 临邑县| 五指山市| 镇宁| 松溪县| 仪征市| 璧山县| 和政县| 长阳| 石首市| 红原县| 彰武县|