日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

去掉窗口_Flink 基础——窗口(Window)理论篇

發布時間:2024/7/23 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 去掉窗口_Flink 基础——窗口(Window)理论篇 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

窗口是什么

要知道 Flink 面對的是無限的數據流,而批處理只是流處理的一個特例,然而我們的計算只能基于一個有限的集合,這個時候窗口正好定義了這其中的概念。因此可以說了解窗口機制是學習 Flink 的基礎也是關鍵。

總結來說,窗口將一個無限數據流拆分成有限的數據集合(以下簡稱為“桶”),并使得我們很方便地在上面做一些操作。那么顯然這里帶來兩個問題:

  • 如何將數據拆分到桶
  • 后續的操作何時發生
  • 在 Flink 的實現中,會有具體的策略決定何時創建一個桶,數據該分配到哪個桶,而后續的操作是基于條件觸發的,當然這個條件是可以自定義的,Flink 內部也有默認的實現,一旦條件達到,后續的操作就會發生,將桶內的數據發送給操作函數。這便是窗口在整個過程中起到的作用。

    圍繞窗口有哪些概念需要掌握

    窗口類型

    接著上面的討論,Flink 會有具體的策略決定何時創建桶以及數據該分配到哪個桶,那么有哪些策略呢?這些策略在 Flink 中的區分就是窗口的類型:

    • 滾動窗口
    • 滑動窗口
    • 會話窗口

    這些窗口具體什么時候會用到呢?比如我們要計算每隔5分鐘的車流量,那就需要滾動窗口,每5分鐘累計一次。但是如果希望每分鐘計算一下最近5分鐘的車流量呢,那就需要滑動窗口,滑動的大小為1分鐘。而如果要統計用戶在一次網頁交互的會話內點擊頁面的次數,那么這個時候就需要用會話窗口了。當然了,如果這幾個內置的窗口不夠用的話,還可以自定義。

    觸發器(Trigger)

    桶已經創建好了,數據也已經分配到具體的桶了,那么何時觸發后續的操作函數呢?這個在 Flink 由觸發器來規定。觸發器會決定一個窗口何時被計算或清除(即清除窗口中的元素)。因而每個窗口都會有一個觸發器。再接著舉上面的例子說吧,如果要5分鐘統計一次的話,那么顯然需要計時,每隔5分鐘就觸發一次。Flink 內部已經對常用的窗口實現了默認的觸發器,如果不滿足的話也可以使用相應的 API 來自定義。

    驅逐者(Evitor)

    驅逐者其實有點像個過濾器,用于在上面的觸發器觸發之后,去掉窗口中的某些元素。對于窗口而言,驅逐者是個可選項。在 Flink 內部提供的滑動計數窗口的實現中,就用到了驅逐者,用來去掉多余的數據。

    允許延遲

    在實際的數據產生到處理的過程中,出現數據的延遲再正常不過了,那么我們怎么讓遲到的數據加入到窗口中呢?在 Flink 中提供了允許延遲的 API,只要數據還沒有到窗口的最后時間加上延遲時間,那么依然會被加入到窗口中,而且有可能再次觸發后續的操作函數,這取決于具體的觸發器的實現。

    小結

    對于窗口相關的理論知識,掌握這些基本就夠了,接下來需要從 API 的使用去了解了,后續文章就開始相關 API 的介紹。

    本文首發于公眾號“數據Man”,歡迎關注!

    數據Man

    總結

    以上是生活随笔為你收集整理的去掉窗口_Flink 基础——窗口(Window)理论篇的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。