Flink學(xué)習(xí)筆記:時間與窗口

Flink學(xué)習(xí)筆記:時間與窗口

1. 時間

在flink中定義了三類時間:

  • 事件時間(Event Time):即事件實際發(fā)生的時間润努。
  • 處理時間(Processing Time):事件被處理的時間。
  • 進(jìn)入時間(Ingestion Time):事件進(jìn)入流處理框架的時間

下圖很好的說明了三種時間的區(qū)別與聯(lián)系


flink中的時間

其中時間時間和處理時間是比較常用,根據(jù)應(yīng)用程序的不同以及結(jié)果準(zhǔn)確性要求可以定義不同的時間,在flink中應(yīng)用程序中應(yīng)當(dāng)顯示的定義時間特征

    // 顯示設(shè)置flink 時間特征:IngestionTime 、EventTime耳舅、ProcessingTime
    // 如果不設(shè)置 默認(rèn)為 ProcessingTime
    env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime)

當(dāng)采用事件時間定義窗口時,可以利用flink的WaterMark機(jī)制處理亂序時間流倚评。


2. 窗口

窗口時flink中的一類算子浦徊,是DataStream的邏輯邊界,用于將許多事件按照時間或者其他特征分組天梧,從而將每一組作為整體進(jìn)行分析盔性。在開發(fā)中最常用的是時間窗口和計數(shù)窗口。

2.1 時間窗口

2.1.1 滾動窗口


滾動窗口

滾動窗口設(shè)置

val dataSource: DataStream[(Int, Int )] = env.addSource(kafkaConsumer)
   .map(...) 

// 設(shè)置處理時間長度為30s的滾動窗口呢岗,也可以定義為事件時間的窗口 TumblingEventTimeWindows
  dataSource.keyBy(0)
      .window( TumblingProcessingTimeWindows.of( Time.seconds(30)) )
    
// 也可以這樣寫
  dataSource.keyBy(0)
      .timeWindow(Time.seconds(30))

2.1.2滑動窗口

滑動窗口

滑動窗口設(shè)置

  // 設(shè)置處理時間滑動窗口:窗口長度為30s冕香,步長5s
  dataSource.keyBy(0)
      .window(TumblingProcessingTimeWindows.of(Time.seconds(30),Time.seconds(5)))
      .sum(1)
     
  dataSource.keyBy(0)
      .timeWindow(Time.seconds(30),Time.seconds(5))
      .sum(1)

滾動窗口和滑動窗口的區(qū)別在于滑動窗口的窗口在不同時間區(qū)間之間有重疊。


2.2 計數(shù)窗口

計數(shù)窗口與時間窗口相似后豫,只不過分組依據(jù)不在是時間而是元素的數(shù)量悉尾,計數(shù)窗口也分為滾動計數(shù)窗口與滑動計數(shù)窗口,但是在使用計數(shù)窗口時需要注意的是挫酿,只有當(dāng)元素的個數(shù)滿足設(shè)定的窗口長度時才會觸發(fā)該窗口的計算构眯,如果不滿足元素個數(shù),則該窗口就不會觸發(fā)計算早龟,窗口長時間占用資源會就會造成資源浪費惫霸。一種解決辦法是用時間窗口來觸發(fā)超時。

    // 設(shè)置窗口長度為10滾動計數(shù)窗口
    dataSource.keyBy(0).countWindow(10).sum(1)
    
    // 設(shè)置窗口長度為10拄衰,步長為2的滑動計數(shù)窗口
    dataSource.keyBy(0).countWindow(10,2).sum(1)

3 其他窗口

flink除了提供時間窗口和計數(shù)窗口它褪,還提供了會話窗口,會話(session)是指一段持續(xù)活躍的期間翘悉,由活躍間隙分隔開茫打,一個session沒有固定的時長和步長,需要自己定義處理機(jī)制。例如同樣是在網(wǎng)站購買商品老赤,有的人經(jīng)過 搜索 -> 點擊 -> 購買 這三個步驟完成一次訂單交易轮洋,耗時可能很長,也可能很短抬旺;有的人則是經(jīng)過 搜索 -> 點擊 -> 查看 ->客服溝通...購買 一系列的操作之后才完成的一次訂單交易弊予。更詳細(xì)的講解介紹可以參考以下兩篇文章:Flink 原理與實現(xiàn):Session WindowFlink流計算編程--看看別人怎么用Session Window开财。與此同時汉柒,為了滿足某些特殊的需求,F(xiàn)link還可以通過自定義window來實現(xiàn)责鳍。


參考資料

https://ci.apache.org/projects/flink/flink-docs-release-1.8/dev/event_time.html
Flink 基礎(chǔ)教程
http://wuchong.me/blog/2016/06/06/flink-internals-session-window/#more
https://blog.csdn.net/lmalds/article/details/69267056

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末碾褂,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子历葛,更是在濱河造成了極大的恐慌正塌,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件恤溶,死亡現(xiàn)場離奇詭異乓诽,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)咒程,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進(jìn)店門鸠天,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人孵坚,你說我怎么就攤上這事粮宛。” “怎么了卖宠?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長忧饭。 經(jīng)常有香客問我扛伍,道長,這世上最難降的妖魔是什么词裤? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任刺洒,我火速辦了婚禮,結(jié)果婚禮上吼砂,老公的妹妹穿的比我還像新娘逆航。我一直安慰自己,他們只是感情好渔肩,可當(dāng)我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布因俐。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪抹剩。 梳的紋絲不亂的頭發(fā)上撑帖,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天,我揣著相機(jī)與錄音澳眷,去河邊找鬼胡嘿。 笑死,一個胖子當(dāng)著我的面吹牛钳踊,可吹牛的內(nèi)容都是我干的衷敌。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼拓瞪,長吁一口氣:“原來是場噩夢啊……” “哼逢享!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起吴藻,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤瞒爬,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后沟堡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體侧但,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年航罗,在試婚紗的時候發(fā)現(xiàn)自己被綠了禀横。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡粥血,死狀恐怖柏锄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情复亏,我是刑警寧澤趾娃,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站缔御,受9級特大地震影響抬闷,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜耕突,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一笤成、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧眷茁,春花似錦炕泳、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽浙芙。三九已至,卻和暖如春荤懂,著一層夾襖步出監(jiān)牢的瞬間茁裙,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工节仿, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留晤锥,地道東北人。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓廊宪,卻偏偏與公主長得像矾瘾,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子箭启,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,779評論 2 354

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