StreamingSystem (Google 流式團隊著)-c1.Streaming101-7

StreamingSystem (Google 流式團隊著)-c1.Streaming101-7

Windowing (窗口計算)

餘下的兩個對於無邊界數據的處理是窗口計算的類型。在深入探討它們之間的差異之前,我應該弄清楚窗口化的確切含義,因為在上一節中我們只是簡要地談到了這一點。 窗口化只是簡單的概念,即獲取一個數據源(無界或有界),並沿時間邊界將其切成有限的塊進行處理(解釋一下,其實窗口就是為了切分數據,幫助做指標或者特徵的計算)。 圖1-8顯示了三種不同的窗口模式,不同的而窗口模式,就是切分無限數據到有限數據的方式

StreamingSystem (Google 流式團隊著)-c1.Streaming101-7

下面將詳細介紹三種窗口模式

Fixed Windows(aka tumbling windows)固定窗口

我們之前討論了固定窗口。 固定的窗口將時間切成具有固定大小的時間長度的段。 通常(如圖1-9所示),將固定窗口的段均勻地應用於整個數據集,這是對齊窗口的一個示例。 在某些情況下未對齊窗口的一個示例是對數據的不同子集(例如,每個鍵)進行窗口偏移,以使窗口完成隨著時間的推移更均勻地分佈。

StreamingSystem (Google 流式團隊著)-c1.Streaming101-7

Sliding windows(aka hopping windows)滑動窗口

滑動窗口是固定窗口更加一般化的的形式,通過定義固定的長度或者固定週期定義的時間, 如果週期小於長度,則窗口重疊。 如果週期等於長度,則您有固定的窗口。 而且,如果週期大於長度,那麼您將擁有一種奇怪的採樣窗口,該採樣窗口只能查看一段時間內數據的子集。 與固定窗口一樣,滑動窗口通常是對齊的,儘管在某些用例中它們可以作為性能優化而未對齊。 注意,圖1-8中的滑動窗口是按原樣繪製的,以提供滑動運動的感覺。 實際上,所有五個窗口將應用於整個數據集。(解釋一下,舉個例子幫忙理解,比如我想做一個滑動窗口操作,每五分鐘看過去一個小時的數據,這個例子裡面,固定週期是5分鐘,固定長度是一個小時,由於固定週期

Sessions 會話窗口

會話窗口是動態窗口的一個示例,由事件序列組成,這些事件序列以大於某個超時的不活動間隔終止。 會話通常用於通過將一系列與時間相關的事件(例如,觀看視頻序列)組合在一起來分析一段時間內的用戶行為。 會話特殊的地方是,長度不能事先定義。 取決於所涉及的實際數據。 會話窗口也是未對齊窗口的典型示例,因為會話實際上在不同數據子集(例如,不同用戶)之間永遠不會完全相同。

前面詳細討論了Processing Time 和Event Time,下面將結合時間概念和窗口概念進行詳細介紹,首先將介紹Processing time的window。


分享到:


相關文章: