Flink window Function– window concept


窗口的划分:

  1. 翻滾窗口(Tumbling Window,無重疊)
  2. 滾動窗口(Sliding Window,有重疊)
  3. 會話窗口(Session Window,活動間隙)

窗口的類型:

   窗口在處理數據前,會對數據做分流,有兩種控制流的方式,按照數據流划分:Keyed和Non-Keyed Windows。

   Keyed Windows:就是有按照某個字段分組的數據流使用的窗口,可以理解為按照原始數據流中的某個key進行分類,擁有同一個key值的數據流將為進入同一個window,多個窗口並行的邏輯流。

   Non-Keyed Windows:沒有進行按照某個字段分組的數據使用的窗口

窗口算子:

   基於窗口內數據的計算,叫做窗口函數。

   Keyed Windows 常用的有以下四個:

   1. ProcessWindowFunction  效率低,整個窗口的數據都會被傳遞給算子,詳見代碼:Flink window Function - ProcessWindowFunction

   2. ReduceFunction  簡單易用,推薦使用,詳見代碼:Flink window Function - ReduceWordCount

   3. AggregateFunction  復雜邏輯,詳見代碼:Flink window Function - AggregateFunction

   4. FoldFunction  過時API,不夠友好,詳見代碼:Flink window Function – FoldFunction

   Non-Keyed Windows

   1.  ProcessAllWindowFunction  將所有的數據放到一個窗口,性能低下,不常用。詳見代碼:Flink window Function - ProcessAllWindowFunction


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM