流式计算中为什么需要时间戳和WaterMark
可能很多從機(jī)器學(xué)習(xí)/深度學(xué)習(xí)轉(zhuǎn)向?qū)崟r(shí)計(jì)算的人會(huì)有這樣一種困惑?
我們?yōu)樯缎枰獣r(shí)間戳/WaterMark
首先,EventTime來(lái)自時(shí)間戳,以及最終構(gòu)成了WaterMark,這個(gè)就不展開說(shuō)了,屬于基本概念。
?
我們回顧下:
我們對(duì)數(shù)據(jù)進(jìn)行分布式集群分析的時(shí)候,很多時(shí)候,都是一股腦兒丟入訓(xùn)練框架,我們常常不care這個(gè)數(shù)據(jù)發(fā)生的時(shí)間點(diǎn)。
?
但是因?yàn)樵诩旱亩鄠€(gè)節(jié)點(diǎn)中,slave和master之間的延時(shí)我們是不可控制的,并且我們?cè)跀?shù)倉(cāng)的終端有出報(bào)表的需要。
如果因?yàn)楣?jié)點(diǎn)之間某些網(wǎng)絡(luò)IO的物理延遲,導(dǎo)致先發(fā)生的數(shù)據(jù),最后才到,顯然對(duì)我們最終的報(bào)表是有影響的。
因?yàn)閳?bào)表是很看重時(shí)間段的。
報(bào)表如果要求前面三分鐘的數(shù)據(jù)做個(gè)aggregate,但是有條數(shù)據(jù)在集群節(jié)點(diǎn)傳輸時(shí)由于網(wǎng)路物理延遲,遲到了,還不帶時(shí)間戳,那么顯然這個(gè)時(shí)候報(bào)表內(nèi)容就會(huì)由于這條遲到且因?yàn)椴粠r(shí)間戳導(dǎo)致無(wú)法檢測(cè)的數(shù)據(jù),報(bào)表的展示出現(xiàn)了錯(cuò)誤。
?
所以水位線其實(shí)是為了實(shí)時(shí)性和準(zhǔn)確性之間做一個(gè)折中,
如果沒有水位線會(huì)咋樣呢?
來(lái)晚的數(shù)據(jù),如果為了準(zhǔn)確性等明天再展示,就失去“實(shí)時(shí)”的意義了。
所以基于水印設(shè)置一個(gè)容忍值,遲到的數(shù)據(jù)去側(cè)邊流輸出到log中,是比較好的一種折中方式。
?
?
?
總結(jié)
以上是生活随笔為你收集整理的流式计算中为什么需要时间戳和WaterMark的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 快对如何删除搜索历史
- 下一篇: 地下城与勇士传说灵魂怎么换金币