Okno przesuwane (Azure Stream Analytics)
W przypadku korzystania z okna przesuwanego system jest proszony o logiczne rozważenie wszystkich możliwych okien o danej długości. Ponieważ liczba takich okien byłaby nieskończona, usługa Azure Stream Analytics zamiast tego generuje zdarzenia tylko dla tych punktów w czasie, gdy zawartość okna rzeczywiście się zmienia, innymi słowy, gdy zdarzenie zostało wprowadzone lub zamyka okno.
Na poniższym diagramie przedstawiono strumień z serią zdarzeń i sposób ich mapowania na przesuwane okna 10 sekund.
Składnia
{SLIDINGWINDOW | SLIDING} ( timeunit, windowsize )
{SLIDINGWINDOW | SLIDING} ( Duration( timeunit, windowsize ) )
Uwaga
Okno przesuwane można używać na dwa powyższe sposoby. Aby umożliwić spójność z oknem przeskoku, funkcja Duration może być również używana ze wszystkimi typami okien w celu określenia rozmiaru okna.
Argumenty
timeunit
Jest jednostką czasu na windowsize. Poniższa tabela zawiera listę wszystkich prawidłowych argumentów timeunit.
Timeunit | Skróty |
---|---|
dzień | dd, d |
godzina | hh |
minuta | mi, n |
sekunda | ss, s |
Milisekundy | Pani |
mikrosekundy | Mcs |
windowsize
Duża liczba całkowita, która opisuje rozmiar okna. Windowsize jest statyczny i nie można go dynamicznie zmieniać w czasie wykonywania.
Maksymalny rozmiar okna we wszystkich przypadkach wynosi 7 dni.
Przykłady
W tym przykładzie znajduje się wszystkie stoiska płatne, które obsługiwały ponad 3 pojazdy w ciągu ostatnich 5 minut:
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