Flink Window觸發(fā)機制

1. Flink的Window類型

Flink基本分有3種window類型:CountWindow,TimeWindow和SessionWindow。
其中,CountWindow和TimeWindow還有滑動與滾動區(qū)分。

通常,window的api定義形式為:

stream
      .keyBy(...)
      .window(...)   // timeWindow,countWindow,SessionWindows.withGap(Time.minutes(10))
      [.trigger(...)]
      [.evictor(...)]
      [.allowedLateness()]
      .reduce/fold/apply()
2.窗口函數(shù)有哪些

定義完窗口分配器后揖庄,需要指定在每個窗口上執(zhí)行的計算,這就是窗口函數(shù)的職責欠雌。
在了解有哪些窗口函數(shù)之前蹄梢,有必要了解Window的聚合分類:
全量聚合:簡單點說是等屬于窗口的數(shù)據(jù)到齊之后,才開始進行聚合計算;即全量聚合在未觸發(fā)之前禁炒,會保存之前的狀態(tài)而咆,在最后窗口觸發(fā)時,才會進行計算幕袱。(所以全量聚合的壓力會很大暴备。)
常見的窗口函數(shù):
apply(WindowFunction) --- 不過1.3之后被棄用
process(processWindowFunction)

增量聚合:窗口每進入一條數(shù)據(jù),就進行一次計算们豌。
reduce(reduceFunction)涯捻;
fold;
aggregate(aggregateFunction)望迎;
sum(key)障癌;min(key);max(key)
sumBy(key)辩尊;minBy(key)涛浙;maxBy(key)

我們需要根據(jù)業(yè)務(wù)場景需要,決定使用是全量聚合還是增量聚合摄欲,并進一步選擇使用哪一種聚合函數(shù)轿亮。

3.Window何時會被觸發(fā)

Window何時被觸發(fā)計算,是由觸發(fā)器Trigger的onElement方法所決定蒿涎。


image.png

該方法的參數(shù):
(1)element:到達的元素
(2)timestamp:元素達到的時間戳
(3)window:元素將被分配的窗口
(4)context:上下文

以時間類型設(shè)置為EventTime之后哀托,觸發(fā)器就是EventTimeTrigger惦辛,對應(yīng)的onElement方法:


image.png

方法很簡單:如果當前的watermark已經(jīng)大于或等于窗口的最大時間戳(即窗口的endTime)劳秋,那么就會觸發(fā)窗口計算,并輸出結(jié)果胖齐。
TriggerResult.FIRE:窗口計算并輸出結(jié)果玻淑,盡管未清除窗口,但保留了所有元素呀伙。
否則的話补履,就是注冊一個以窗口的最大時間戳為時間的定時器。

window.maxTimestamp()
image.png

這里的end是指窗口的結(jié)束時間剿另,通常是在WindowAssigner中指定箫锤,WindowAssigner有:


image.png

以TumblingEventTimeWindows為例:


image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市雨女,隨后出現(xiàn)的幾起案子谚攒,更是在濱河造成了極大的恐慌,老刑警劉巖氛堕,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件馏臭,死亡現(xiàn)場離奇詭異,居然都是意外死亡讼稚,警方通過查閱死者的電腦和手機括儒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進店門绕沈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人帮寻,你說我怎么就攤上這事乍狐。” “怎么了规婆?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵澜躺,是天一觀的道長。 經(jīng)常有香客問我抒蚜,道長掘鄙,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任嗡髓,我火速辦了婚禮操漠,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘饿这。我一直安慰自己浊伙,他們只是感情好,可當我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布长捧。 她就那樣靜靜地躺著嚣鄙,像睡著了一般。 火紅的嫁衣襯著肌膚如雪串结。 梳的紋絲不亂的頭發(fā)上哑子,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天,我揣著相機與錄音肌割,去河邊找鬼卧蜓。 笑死,一個胖子當著我的面吹牛把敞,可吹牛的內(nèi)容都是我干的弥奸。 我是一名探鬼主播,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼奋早,長吁一口氣:“原來是場噩夢啊……” “哼盛霎!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起耽装,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤愤炸,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后剂邮,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體摇幻,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了绰姻。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片枉侧。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖狂芋,靈堂內(nèi)的尸體忽然破棺而出榨馁,到底是詐尸還是另有隱情,我是刑警寧澤帜矾,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布翼虫,位于F島的核電站,受9級特大地震影響屡萤,放射性物質(zhì)發(fā)生泄漏珍剑。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一死陆、第九天 我趴在偏房一處隱蔽的房頂上張望招拙。 院中可真熱鬧,春花似錦措译、人聲如沸别凤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽规哪。三九已至,卻和暖如春塌衰,著一層夾襖步出監(jiān)牢的瞬間诉稍,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工猾蒂, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留均唉,地道東北人是晨。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓肚菠,卻偏偏與公主長得像,于是被迫代替她去往敵國和親罩缴。 傳聞我的和親對象是個殘疾皇子蚊逢,可洞房花燭夜當晚...
    茶點故事閱讀 42,834評論 2 345

推薦閱讀更多精彩內(nèi)容