欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

watermark該怎么理解

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)watermark該怎么理解,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

站在用戶的角度思考問題,與客戶深入溝通,找到棗強(qiáng)網(wǎng)站設(shè)計(jì)與棗強(qiáng)網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站建設(shè)、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、主機(jī)域名虛擬主機(jī)、企業(yè)郵箱。業(yè)務(wù)覆蓋棗強(qiáng)地區(qū)。

經(jīng)常有球友或者微信群友反饋?zhàn)约焊悴幻靼譿atermark怎么回事兒,所以今天小編準(zhǔn)備發(fā)文詳細(xì)說明一下。

首先,拿基于窗口的計(jì)算來說吧,窗口的大小 size和滑動(dòng)間隔 slide,都是基于時(shí)間維度處理的,像Spark Streaming就是基于處理時(shí)間,也即是處理任務(wù)所在機(jī)器的本地時(shí)間,用這個(gè)時(shí)間處理數(shù)據(jù)我們自然無法關(guān)注事件是否在時(shí)間維度上亂序,是否是滯后數(shù)據(jù),那么為了保證數(shù)據(jù)有序和處理滯后數(shù)據(jù)就不能用處理時(shí)間進(jìn)行處理。

幸運(yùn)的事情是往往我們采集數(shù)據(jù)的時(shí)候往往會(huì)給數(shù)據(jù)打上一個(gè)采集時(shí)間,那么我們?cè)诤竺媪魈幚淼臅r(shí)候假如窗口大小 size和滑動(dòng)間隔 slide 是基于這個(gè)時(shí)間的話,那么我們就可以感知到事件是否在時(shí)間維度上有序,是否滯后。在這種情況下就引入了watermark,其作用一是驅(qū)動(dòng)流計(jì)算向前執(zhí)行,二是可以作為依據(jù)處理延遲數(shù)據(jù),也即是可以允許數(shù)據(jù)有多大的延遲。

1. 時(shí)間概念

從時(shí)間概念上來講,對(duì)于流程序總共有三種時(shí)間概念:

  1. 處理時(shí)間

  2. 注入時(shí)間

  3. 事件時(shí)間

watermark該怎么理解

其中,注入時(shí)間可以視為事件時(shí)間的特殊形式,但是要注意的事情是注入時(shí)間就不能處理無序事件和滯后事件,自然不能用watermark機(jī)制了。

2. 事件時(shí)間和watermark

支持事件時(shí)間的流處理器需要一種方法來測(cè)量事件時(shí)間的進(jìn)展。例如,一個(gè)小時(shí)窗口windows的操作,當(dāng)事件時(shí)間已經(jīng)超過一個(gè)小時(shí)的時(shí)候需要通知該操作算子,以便操作算子可以關(guān)閉正在進(jìn)行中的窗口。

例如在一個(gè)程序中,操作算子的當(dāng)前事件時(shí)間可能稍微落后于處理時(shí)間(事件傳輸延遲導(dǎo)致的)。另外流程序可能只需要幾秒鐘的處理時(shí)間就可以處理事件跨度為幾周的數(shù)據(jù),比如通過快速處理一些已經(jīng)緩存在kafka topic(或者另外的消息隊(duì)列)中的歷史數(shù)據(jù)。

Flink中使用watermark去測(cè)量事件時(shí)間的進(jìn)度。Watermark 作為數(shù)據(jù)流的一部分,攜帶一個(gè)時(shí)間戳 t。一個(gè)Watermark(t) 聲明事件時(shí)間已經(jīng)到達(dá)時(shí)間t,意味著已經(jīng)沒有事件時(shí)間t1<t的元素在流中存在(也即時(shí)間的時(shí)間戳應(yīng)該早于或者等于watermark)。如下圖:

watermark該怎么理解

Watermark對(duì)于無序流是至關(guān)重要的,如下圖所示,事件不是根據(jù)時(shí)間戳排序。一般來說,watermark類似于deadline吧,到了這個(gè)點(diǎn)你還沒到,那就pass掉了。也即是一旦watermark到達(dá)操作算子,操作算子就可以將內(nèi)部時(shí)間設(shè)置為watermark的值,再來數(shù)據(jù)就會(huì)棄掉了。

watermark該怎么理解

3. 在并行流中的watermark

對(duì)于flink來說,一般Watermark是在Source函數(shù)生成,當(dāng)然也可以再后期的算子中生成,但是一定要在時(shí)間函數(shù)(主要是窗口函數(shù))之前生成。一個(gè)source函數(shù)的每個(gè)并行子任務(wù)通常獨(dú)立的產(chǎn)生watermark。這些watermark定義了特定并行source的事件時(shí)間。

當(dāng)watermark流經(jīng)流程序時(shí),會(huì)調(diào)整操作算子中的事件時(shí)間至watermark到達(dá)的時(shí)間。每當(dāng)操作算子更新它自己的事件時(shí)間時(shí),它就會(huì)為后繼的操作算子生成一個(gè)新的下行watermark。

一些操作算子會(huì)有多個(gè)輸入流。例如,union操作或者keyBy(...)或partition(...)之后的操作.這些操作算子的當(dāng)前事件時(shí)間是取決于所有輸入流最小的事件時(shí)間。當(dāng)輸入流更新它們的事件時(shí)間時(shí),操作算子也會(huì)更新。

下圖顯示了,流經(jīng)并行流的事件和watermark,以及跟蹤事件時(shí)間的運(yùn)算符。

watermark該怎么理解

4. 遲滯元素

也可能存在違反watermark條件的事件,也即在Watermark(t) 已經(jīng)發(fā)生以后,會(huì)有時(shí)間戳t1<t的事件出現(xiàn)。事實(shí)上,在現(xiàn)實(shí)設(shè)置中,某些事件可能會(huì)有任意的延遲,使得所有元素在watermark之前準(zhǔn)時(shí)到達(dá)變得不是很可能。即使延遲是有界的,大尺度的延遲watermark也是不可取的,因?yàn)闀?huì)導(dǎo)致事件時(shí)間窗口計(jì)算延遲很大,窗口會(huì)等到watermark時(shí)間戳到達(dá)才會(huì)刷寫到sink的

比如,窗口一個(gè)小時(shí),watermark設(shè)置的是一天,那結(jié)果就會(huì)在一天零一個(gè)小時(shí)候刷出去,這個(gè)明顯不是我們要的,尤其是對(duì)實(shí)時(shí)性要求比較高的。

5. 空閑source

目前,對(duì)于純事件時(shí)間watermark生成器,如果沒有要處理的事件,則watermark是不會(huì)生成并且下發(fā)的。 這意味著在輸入數(shù)據(jù)存在間隙的情況下,事件時(shí)間將不會(huì)繼續(xù)前進(jìn),例如窗口操作算子將不會(huì)被觸發(fā),因此現(xiàn)有窗口將不能產(chǎn)生任何輸出數(shù)據(jù)。

為了避免這種情況,可以使用周期watermark分配器,它們不僅基于事件時(shí)間戳進(jìn)行分配,還會(huì)在沒有事件的時(shí)候產(chǎn)生空的watermark。 比如可以在長(zhǎng)時(shí)間沒有觀測(cè)到事件流入的話,可以采用系統(tǒng)當(dāng)前時(shí)間來生成watermark。

當(dāng)然,可以使用SourceFunction.SourceContext #markAsTemporarilyIdle將源標(biāo)記為空閑。 

6. watermark處理機(jī)制

前面說了,watarmark的作用和產(chǎn)生,那么watermark是如何被算子處理的呢?

通用的規(guī)則是操作算子需要在向下游轉(zhuǎn)發(fā)watermark之前完全處理給定的watermark。 例如,WindowOperator將首先評(píng)估應(yīng)該觸發(fā)哪些窗口,并且只有在產(chǎn)生由watermark觸發(fā)的所有輸出之后,watermark本身才會(huì)被發(fā)送到下游。 換句話說,由于出現(xiàn)水印而產(chǎn)生的所有元素將在水印之前發(fā)出。

同樣的規(guī)則適用于TwoInputStreamOperator。 但是,在這種情況下,操作算子的當(dāng)前watermark被定義為其兩個(gè)輸入的最小值。

要注意watermark指定延遲的話進(jìn)行不要太大,太大會(huì)導(dǎo)致結(jié)果刷新滯后太久。

數(shù)據(jù)上報(bào)有周期性間隔的話,要注意以心跳的形式發(fā)watermark,保證流程序繼續(xù)前進(jìn)。

上述就是小編為大家分享的watermark該怎么理解了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

標(biāo)題名稱:watermark該怎么理解
分享網(wǎng)址:http://www.chinadenli.net/article20/gghcjo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站面包屑導(dǎo)航網(wǎng)站營(yíng)銷網(wǎng)站設(shè)計(jì)公司小程序開發(fā)虛擬主機(jī)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)