共用方式為


滑動視窗

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

使用滑動視窗時,系統會要求系統以邏輯方式考慮指定長度的所有可能視窗。 由於這類視窗的數目是無限的,Azure 串流分析會改為只針對視窗內容實際變更的時間點輸出事件,換句話說,當事件進入或結束視窗時。

下圖說明具有一系列事件的數據流,以及它們如何對應到 10 秒的滑動視窗。

串流分析 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