✅ Azure 串流分析 ✅ 網狀架構事件串流
使用滑動視窗時,系統會要求系統以邏輯方式考慮指定長度的所有可能視窗。 由於這類視窗的數目是無限的,Azure 串流分析會改為只針對視窗內容實際變更的時間點輸出事件,換句話說,當事件進入或結束視窗時。
下圖說明具有一系列事件的數據流,以及它們如何對應到 10 秒的滑動視窗。
語法
{SLIDINGWINDOW | SLIDING} ( timeunit, windowsize )
{SLIDINGWINDOW | SLIDING} ( Duration( timeunit, windowsize ) )
備註
滑動視窗可以透過上述兩種方式使用。 若要允許與跳躍視窗保持一致性,持續時間函式也可以與所有類型的視窗搭配使用,以指定視窗大小。
論點
timeunit
這是視窗化的時間單位。 下表列出所有有效的 timeunit 自變數。
| Timeunit | 縮寫 |
|---|---|
| 日 | dd、d |
| 小時 | 呵呵 |
| 分鐘 | mi, n |
| 秒 | ss、s |
| 毫秒 | 毫秒 |
| 微秒 | mcs |
windowsize
描述視窗大小的大整數。 Windowsize 是靜態的,而且無法在運行時間動態變更。
在所有情況下,視窗的大小上限為 7 天。
範例
此範例會尋找過去 5 分鐘內服務超過 3 輛車的所有收費站:
SELECT DateAdd(minute,-5,System.Timestamp()) AS WinStartTime, System.Timestamp() AS WinEndTime, TollId, COUNT(*)
FROM Input TIMESTAMP BY EntryTime
GROUP BY TollId, SlidingWindow(minute, 5)
HAVING COUNT(*) > 3