Dela via


Skjutfönster (Azure Stream Analytics)

När du använder ett skjutfönster uppmanas systemet att logiskt överväga alla möjliga fönster med en viss längd. Eftersom antalet sådana fönster skulle vara oändligt matar Azure Stream Analytics i stället ut händelser endast för de tidpunkter då innehållet i fönstret faktiskt ändras, med andra ord när en händelse har angetts eller lämnar fönstret.

Följande diagram illustrerar en ström med en serie händelser och hur de mappas till skjutfönster på 10 sekunder.

Stream Analytics 10 sekunders skjutfönster

Syntax

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

Anteckning

Skjutfönstret kan användas på de två sätten ovan. För att tillåta konsekvens med hoppningsfönstret kan funktionen Varaktighet också användas med alla typer av fönster för att ange fönsterstorleken.

Argument

timeunit

Är tidsenheten för windowsize. I följande tabell visas alla giltiga timeunit-argument.

Tidsenhet Förkortningar
day dd, d
timme hh
minut mi, n
sekund ss, s
Millisekund Ms
mikrosekunder Mcs

windowsize

Ett stort heltal som beskriver fönstrets storlek. Windows-storleken är statisk och kan inte ändras dynamiskt vid körning.

Fönstrets maximala storlek är i samtliga fall 7 dagar.

Exempel

Det här exemplet hittar alla avgiftsbelagda bås som har betjänat fler än 3 fordon under de senaste 5 minuterna:

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