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.
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