Freigeben über


Springendes Fenster (Azure Stream Analytics)

Im Gegensatz zu taumelnden Fenstern wurden beim Springen von Windows-Modell überlappende Fenster geplant. Eine Hüpffensterspezifikation besteht aus drei Parametern: timeunit, windowsize (wie lange jedes Fenster dauert) und Hopsize (wie viel sich jedes Fenster im Vergleich zum vorherigen Fenster vorwärts bewegt). Darüber hinaus kann offsetsize als optionaler vierter Parameter verwendet werden. Beachten Sie, dass ein rollierendes Fenster einfach ein springendes Fenster ist, dessen "Hop" (Abschnitt) identisch ist mit seiner "Größe".

Die folgende Abbildung zeigt einen Datenstrom mit einer Reihe von Ereignissen. Jedes Feld stellt ein springendes Fenster und die Ereignisse dar, die als Teil dieses Fensters gezählt werden, wobei angenommen wird, dass der "Hop" 5 und die "Größe" 10 entspricht.

Stream Analytics-Hoppingfensterdiagramm Stream

Syntax

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

Hinweis

Das springende Fenster kann auf die beiden oben genannten Arten verwendet werden. Wenn Fenster- und Hopgröße dieselbe Zeiteinheit aufweisen, können Sie diese ohne die Funktionen "Duration" und "Hop" verwenden. Die Funktion "Duration" kann auch mit anderen Fenstertypen verwendet werden, um die Fenstergröße anzugeben.

Argumente

timeunit

Ist die Zeiteinheit für die Fenstergröße oder die Hopsize. In der folgenden Tabelle sind alle gültigen timeunit-Argumente aufgeführt.

Timeunit Abkürzungen
day dd, d
hour hh
minute mi, n
second ss, s
Millisekunde ms
Mikrosekunde mcs

windowsize

Eine große Ganzzahl, die die Größe des Fensters beschreibt. Die Windowsgröße ist statisch und kann zur Laufzeit nicht dynamisch geändert werden.

Die maximale Größe des Fensters in allen Fällen beträgt 7 Tage.

hopsize

Eine große ganze Zahl, die die Größe des Hops beschreibt.

offsetsize

Standardmäßig sind springende Fenster am Ende des Fensters inklusiv und am Anfang exklusiv – z. B. 12:05 Uhr – 13:05 Uhr – 13:05 Uhr fenster enthält Ereignisse, die genau um 13:05 Uhr aufgetreten sind, aber keine Ereignisse, die um 12:05 Uhr aufgetreten sind (dieses Ereignis ist Teil des Fensters 12:00 Uhr – 13:00 Uhr).
Der Offset-Parameter kann verwendet werden, um das Verhalten zu ändern und die Ereignisse am Anfang des Fensters einzuschließen und die ereignisse auszuschließen, die am Ende aufgetreten sind.

Beispiele

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

Zeitüberlegung

Jeder Fenstervorgang gibt ein Ereignis am Ende des Fensters aus (bei springenden Fenstern geschieht dies bei jeder Hopgröße). Die Fenster von Azure Stream Analytics werden zur Startzeit des Fensters geöffnet und zur Endzeit des Fensters geschlossen. Wenn Sie beispielsweise ein 5-Minuten-Fenster von 12:00 Uhr bis 12:05 Uhr haben, sind alle Ereignisse mit einem Zeitstempel größer als 12:00 Uhr und bis einschließlich Zeitstempel 12:05 Uhr in diesem Fenster enthalten. Die Ausgabe des Fensters ist ein einzelnes Ereignis basierend auf der Aggregatfunktion, die mit einem Zeitstempel gleich der Endzeit des Fensters verwendet wird. Der Zeitstempel des Ausgabeereignisses des Fensters kann in der SELECT-Anweisung mithilfe der System.Timestamp()-Eigenschaft mit einem Alias projiziert werden.