Delen via


Hopping Window (Azure Stream Analytics)

In tegenstelling tot tumblingvensters worden er geplande overlappende vensters gebruikt. Een hopping window-specificatie bestaat uit drie parameters: de tijdeenheid, de venstergrootte (hoe lang elk venster duurt) en de hopgrootte (met de mate waarin elk venster vooruit gaat ten opzichte van het vorige venster). Daarnaast kan offsetgrootte worden gebruikt als een optionele vierde parameter. Houd er rekening mee dat een tumblingvenster gewoon een hopvenster is waarvan 'hop' gelijk is aan de 'grootte'.

In de volgende afbeelding ziet u een stream met een reeks gebeurtenissen. Elk vak vertegenwoordigt een hopvenster en de gebeurtenissen die worden geteld als onderdeel van dat venster, ervan uitgaande dat de 'hop' 5 is en de 'grootte' 10 is.

Stream Analytics-hopvensterdiagram

Syntaxis

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

Notitie

Het hoppingvenster kan op de bovenstaande twee manieren worden gebruikt. Als de venstergrootte en de hopgrootte dezelfde tijdeenheid hebben, kunt u deze gebruiken zonder de functies Duur en Hop. De functie Duur kan ook worden gebruikt met andere typen vensters om de venstergrootte op te geven.

Argumenten

tijdeenheid

Is de tijdseenheid voor de venstergrootte of de hopgrootte. De volgende tabel bevat alle geldige tijdeenheidargumenten .

Tijdeenheid Afkortingen
day dd, d
uur hh
minuut mi, n
seconde ss, s
Milliseconde ms
microseconde Mcs

windowsize

Een groot geheel getal dat de grootte van het venster aangeeft. De windows-grootte is statisch en kan niet dynamisch worden gewijzigd tijdens runtime.

De maximale grootte van het venster is in alle gevallen 7 dagen.

hopsize

Een groot geheel getal dat de grootte van de hop aangeeft.

offsetgrootte

Hopping-vensters zijn standaard inclusief aan het einde van het venster en exclusief in het begin. Het venster van 12:05 – 13:05 uur bevat bijvoorbeeld gebeurtenissen die precies om 13:05 uur hebben plaatsgevonden, maar geen gebeurtenissen die plaatsvonden om 12:05:05 uur (deze gebeurtenis maakt deel uit van het venster 12:00 pm – 01:00 pm).
De parameter Offset kan worden gebruikt om het gedrag te wijzigen en de gebeurtenissen in het begin van het venster op te nemen en de gebeurtenissen uit te sluiten die uiteindelijk zijn opgetreden.

Voorbeelden

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

Tijdsoverweging

Elke vensterbewerking voert gebeurtenis uit aan het einde van het venster (in het geval van hopvensters gebeurt dit bij elke hopgrootte). De vensters van Azure Stream Analytics worden geopend op de begintijd van het venster en gesloten op de eindtijd van het venster. Als u bijvoorbeeld een tijdsvenster van 5 minuten hebt van 00:00 tot 12:05 uur, worden alle gebeurtenissen met een tijdstempel groter dan 12:00 uur en tot en met tijdstempel 12:05 in dit venster opgenomen. De uitvoer van het venster is één gebeurtenis op basis van de statistische functie die wordt gebruikt met een tijdstempel die gelijk is aan de eindtijd van het venster. De tijdstempel van de uitvoergebeurtenis van het venster kan worden geprojecteerd in de SELECT-instructie met behulp van de eigenschap System.Timestamp() met behulp van een alias.