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