Dela via


Hoppande fönster (Azure Stream Analytics)

Till skillnad från rullande fönster, hoppande windows modell schemalagda överlappande fönster. En specifikation för hoppande fönster består av tre parametrar: tidsenheten, windowsstorleken (hur länge varje fönster varar) och hoppstorleken (med hur mycket varje fönster flyttas framåt i förhållande till det föregående). Dessutom kan offsetsize användas som en valfri fjärde parameter. Observera att ett rullande fönster helt enkelt är ett hoppande fönster vars "hopp" är lika med dess "storlek".

Följande bild visar en ström med en serie händelser. Varje ruta representerar ett hoppande fönster och de händelser som räknas som en del av fönstret, förutsatt att "hopp" är 5 och "storleken" är 10.

Stream Analytics hoppande fönsterdiagram

Syntax

{HOPPINGWINDOW | HOPPING} ( timeunit  , windowsize , hopsize, [offsetsize] )
{HOPPINGWINDOW | HOPPING} ( Duration( timeunit  , windowsize ) , Hop (timeunit  , windowsize ), [Offset(timeunit  , offsetsize)])  
  

Anteckning

Hoppningsfönstret kan användas på de två sätten ovan. Om windowsize och hopsize har samma timeunit kan du använda den utan funktionerna Duration och Hop. Funktionen Varaktighet kan också användas med andra typer av fönster för att ange fönsterstorleken.

Argument

timeunit

Är tidsenheten för windowsize eller hopsize. 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.

hopsize

Ett stort heltal som beskriver storleken på hoppet.

offsetsize

Som standard är hoppande fönster inkluderande i slutet av fönstret och exklusiva i början – till exempel 12:05 PM – 13:05 PM-fönstret innehåller händelser som inträffat exakt kl. 13:05, men inkluderar inte händelser som inträffat kl. 12:05:PM (dessa händelser kommer att vara en del av 12:00 PM – 01:00 PM fönster).
Parametern Offset kan användas för att ändra beteende och inkludera händelserna i början av fönstret och exkludera dem som inträffade i slutet.

Exempel

SELECT System.Timestamp() AS WindowEnd, TollId, COUNT(*)  
FROM Input TIMESTAMP BY EntryTime  
GROUP BY TollId, HoppingWindow(Duration(hour, 1), Hop(minute, 5), Offset(millisecond, -1))  
  

Tidsövervägande

Varje fönsteråtgärd matar ut händelsen i slutet av fönstret (vid hoppande fönster sker detta vid varje hoppstorlek). Fönstren i Azure Stream Analytics öppnas vid fönstrets starttid och stängs vid fönstrets sluttid. Om du till exempel har ett 5-minutersfönster från 12:00 till 12:05 inkluderas alla händelser med tidsstämpel som är större än 12:00 och upp till tidsstämpel 12:05. Utdata från fönstret är en enskild händelse baserat på den mängdfunktion som används med en tidsstämpel som är lika med fönstrets sluttid. Tidsstämpeln för utdatahändelsen i fönstret kan projiceras i SELECT-instruktionen med hjälp av egenskapen System.Timestamp() med hjälp av ett alias.