跳動視窗 (Azure 資料流分析)
不同于 輪轉視窗,跳動視窗模型排程的重迭視窗。 跳動視窗規格包含三個參數: timeunit、 windowsize (每一個視窗持續多久) , 躍 點會依每個視窗相對於前一個視窗) 向前移動多少來 (。 此外, offsetsize 也可以當做選擇性的第四個參數使用。 請注意,輪轉視窗只是「躍點」等於「大小」的跳動視窗。
下圖代表含有一系列事件的資料流。 假設「躍點」是 5,「大小」是 10,每個方塊都代表一個跳動視窗和計入該視窗的事件。
Syntax
{HOPPINGWINDOW | HOPPING} ( timeunit , windowsize , hopsize, [offsetsize] )
{HOPPINGWINDOW | HOPPING} ( Duration( timeunit , windowsize ) , Hop (timeunit , windowsize ), [Offset(timeunit , offsetsize)])
注意
跳動視窗的用法包括以上兩種。 如果 windowsize 和 hopsize 的 timeunit 相同,您可以在不使用 Duration 和 Hop 等函數的情況下使用它。 您也可以使用 Duration 函數並搭配其他類型的視窗來指定視窗大小。
引數
timeunit
這是 windowsize 或 hopsize的時間單位。 下表列出所有有效的 timeunit 引數。
Timeunit | 縮寫 |
---|---|
day | dd, d |
hour | hh |
minute | mi, n |
second | ss, s |
毫秒 | ms |
微秒 | mcs |
windowsize
描述視窗大小的大整數。 windowsize 是靜態的,無法在執行時間動態變更。
在所有情況下時段的大小上限為 7 天。
hopsize
描述躍點大小的大整數。
offsetsize
根據預設,跳動視窗會包含在視窗的結尾,而開頭為獨佔 –例如下午 12:05 – 下午 1:05 會包含剛于下午 1:05 發生的事件,但不包含在下午 12:05:PM 發生的事件, (這些事件將會是下午 12:00 - 下午 01: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 分鐘的時間範圍,則時間戳記大於上午 12:00 且時間戳記上限為 12:05 的事件都會包含在此視窗中。 時段的輸出會是單一事件,而該事件以搭配等於時段結束時間的時間戳記使用的彙總函式為基礎。 視窗的輸出事件時間戳記可以使用別名的 System.Timestamp () 屬性,投影在 SELECT 語句中。