✅ Azure 串流分析 ✅ 網狀架構事件串流
輪轉視窗是一系列的固定大小、非重疊和連續時間間隔。 下圖說明具有一系列事件的數據流,以及它們如何對應到 10 秒輪轉視窗。
語法
{TUMBLINGWINDOW | TUMBLING} ( timeunit , windowsize, [offsetsize] )
{TUMBLINGWINDOW | TUMBLING} ( Duration( timeunit , windowsize ), [Offset(timeunit , offsetsize)] )
備註
輪轉視窗可以透過上述兩種方式使用。 若要允許與跳躍視窗保持一致性,持續時間函式也可以與所有類型的視窗搭配使用,以指定視窗大小。 窗口持續時間必須是正浮點數。
論點
timeunit
這是視窗化的時間單位。 下表列出所有有效的 timeunit 自變數。
| Timeunit | 縮寫 |
|---|---|
| 日 | dd、d |
| 小時 | 呵呵 |
| 分鐘 | mi, n |
| 秒 | ss、s |
| 毫秒 | 毫秒 |
| 微秒 | 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 的 5 分鐘時間範圍,則包含時間戳大於上午 12:00 且包含時間戳最多 12:05 的事件都會包含在此視窗中。 窗口的輸出會根據與時間範圍結束時間相等時間戳的聚合函數,是單一事件。 窗口的輸出事件時間戳可以使用別名的 System.Timestamp() 屬性,在 SELECT 語句中投影。