輪轉視窗 (Azure 資料流分析)
輪轉視窗是一系列大小固定、非重疊的連續時間間隔。 下圖說明具有一系列事件的資料流程,以及它們如何對應到 10 秒輪轉視窗。
Syntax
{TUMBLINGWINDOW | TUMBLING} ( timeunit , windowsize, [offsetsize] )
{TUMBLINGWINDOW | TUMBLING} ( Duration( timeunit , windowsize ), [Offset(timeunit , offsetsize)] )
注意
輪轉視窗的用法包括以上兩種。 若要允許與跳動視窗之間的一致性,您也可以使用 Duration 函數並搭配所有類型的視窗來指定視窗大小。 視窗持續時間必須是正浮點數。
引數
timeunit
windowsize 的時間單位。 下表列出所有有效的 timeunit 引數。
Timeunit | 縮寫 |
---|---|
day | dd, d |
hour | hh |
minute | mi, n |
second | ss, s |
毫秒 | ms |
微秒 | mcs |
windowsize
描述視窗大小的大整數。 windowsize 是靜態的,無法在執行時間動態變更。
時段的大小上限為 7 天。
offsetsize
根據預設,輪轉視窗會包含在視窗的結尾,而開頭為獨佔–例如下午 12:00 – 下午 1:00 會包含剛于下午 1:00 發生的事件,但不包含在下午 12:00 時發生的事件, (這些事件會是上午 11:00 - 下午 12:00 的一部分) 。
Offset 參數可用來變更此行為,並在視窗開頭包含事件,並排除最後發生的事件。
範例
SELECT System.Timestamp() AS WindowEnd, TollId, COUNT(*)
FROM Input TIMESTAMP BY EntryTime
GROUP BY TollId, TumblingWindow(Duration(hour, 1), Offset(millisecond, -1))
SELECT 'reset' AS command
INTO
alert
FROM
temperature TIMESTAMP BY timeCreated
GROUP BY TumblingWindow(second,15)
HAVING Avg(machine.temperature) > 25
時間考量
每個時段作業會在時段結束時輸出事件。 Azure 串流分析的視窗會在視窗開始時間開啟,並在視窗結束時間關閉。 例如,如果您在上午 12:00 到上午 12:05 之間有 5 分鐘的時間範圍,則時間戳記大於上午 12:00 且時間戳記上限為 12:05 的事件都會包含在此視窗中。 時段的輸出會是單一事件,而該事件以搭配等於時段結束時間的時間戳記使用的彙總函式為基礎。 視窗的輸出事件時間戳記可以使用別名的 System.Timestamp () 屬性,投影在 SELECT 語句中。