共用方式為


跳動視窗

✅ Azure 串流分析 ✅ 網狀架構事件串流

不同於 輪轉視窗,跳躍視窗模型排程的重疊視窗。 跳動視窗規格包含三個參數: timeunitwindowsize (每個窗口持續多久)和 躍點 (每個視窗相對於前一個視窗向前移動多少)。 此外, offsetsize 也可以用來做為選擇性的第四個參數。 請注意,輪轉視窗只是跳躍視窗,其「躍點」等於其「大小」。

下圖顯示具有一系列事件的數據流。 每個方塊都代表跳躍視窗,以及計算為該視窗一部分的事件,假設 'hop' 為 5,而 'size' 為 10。

串流分析跳躍視窗圖表串流

語法

{HOPPINGWINDOW | HOPPING} ( timeunit  , windowsize , hopsize, [offsetsize] )
{HOPPINGWINDOW | HOPPING} ( Duration( timeunit  , windowsize ) , Hop (timeunit  , windowsize ), [Offset(timeunit  , offsetsize)])  
  

備註

跳躍視窗可以透過上述兩種方式使用。 如果 windowsize 和 hopsize 有相同的 timeunit,您可以使用它而不使用 Duration 和 Hop 函式。 Duration 函式也可以與其他類型的視窗搭配使用,以指定視窗大小。

論點

timeunit

這是 視窗化躍點的時間單位。 下表列出所有有效的 timeunit 自變數。

Timeunit 縮寫
dd、d
小時 呵呵
分鐘 mi, n
ss、s
毫秒 毫秒
微秒 mcs

windowsize

描述視窗大小的大整數。 Windowsize 是靜態的,而且無法在運行時間動態變更。

在所有情況下,視窗的大小上限為 7 天。

hopsize

描述躍點大小的大整數。

offsetsize

根據預設,跳躍視窗會包含在視窗結尾,開頭為獨佔,例如下午 12:05 – 下午 1:05 將包含正好在下午 1:05 發生的事件,但不包含在下午 12:05:PM 發生的事件(這些事件會是下午 12:00 - 下午 01:00 的一部分)。
Offset 參數可用來變更行為,並在窗口開頭包含事件,並排除最後發生的事件。

範例

SELECT System.Timestamp() AS WindowEnd, TollId, COUNT(*)  
FROM Input TIMESTAMP BY EntryTime  
GROUP BY TollId, HoppingWindow(Duration(hour, 1), Hop(minute, 5), Offset(millisecond, -1))  
  

時間考慮

每個視窗作業都會輸出視窗結尾的事件(在跳躍窗口的情況下,這會在每個躍點大小發生)。 Azure 串流分析的視窗會在時間範圍開始時間開啟,並在時間結束時間關閉。 例如,如果您有從上午 12:00 到上午 12:05 5 的 5 分鐘時間範圍,則包含時間戳大於上午 12:00 且包含時間戳最多 12:05 的事件都會包含在此視窗中。 窗口的輸出會根據與時間範圍結束時間相等時間戳的聚合函數,是單一事件。 窗口的輸出事件時間戳可以使用別名的 System.Timestamp() 屬性,在 SELECT 語句中投影。