共用方式為


滑動視窗 (Azure 資料流分析)

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

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

串流分析 10 秒滑動視窗

Syntax

{SLIDINGWINDOW | SLIDING} ( timeunit, windowsize )
{SLIDINGWINDOW | SLIDING} ( Duration( timeunit, windowsize ) )

注意

滑動視窗的用法包括以上兩種。 若要允許與跳動視窗之間的一致性,您也可以使用 Duration 函數並搭配所有類型的視窗來指定視窗大小。

引數

timeunit

windowsize 的時間單位。 下表列出所有有效的 timeunit 引數。

Timeunit 縮寫
day dd, d
hour hh
minute mi, n
second ss, s
毫秒 ms
微秒 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