Rollierendes Fenster (Azure Stream Analytics)
Bei rollierenden Fenstern handelt es sich um eine Reihe von nicht überlappenden, aneinandergrenzenden Zeitintervallen mit einer festen Größe. Das folgende Diagramm veranschaulicht einen Stream mit einer Reihe von Ereignissen und wie sie in 10-Sekunden-Rollfenstern zugeordnet werden.
Syntax
{TUMBLINGWINDOW | TUMBLING} ( timeunit , windowsize, [offsetsize] )
{TUMBLINGWINDOW | TUMBLING} ( Duration( timeunit , windowsize ), [Offset(timeunit , offsetsize)] )
Hinweis
Das rollierende Fenster kann auf die beiden oben genannten Arten verwendet werden. Um die Konsistenz mit dem springenden Fenster zu ermöglichen, kann die Funktion "Duration" auch mit allen Arten von Fenstern verwendet werden, um die Fenstergröße anzugeben. Die Fensterdauer muss eine positive Floatkonstante sein.
Argumente
timeunit
Ist die Zeiteinheit für die Fenstergröße. In der folgenden Tabelle sind alle gültigen Argumente für "timeunit" 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 beträgt 7 Tage.
offsetsize
Standardmäßig sind taumelnde Fenster am Ende des Fensters inklusive und am Anfang exklusiv – z. B. 12:00 Uhr – 13:00 Uhr fenster enthält Ereignisse, die genau um 13:00 Uhr aufgetreten sind, aber keine Ereignisse, die um 12:00 Uhr aufgetreten sind (diese Ereignisse sind Teil des Fensters 11:00 Uhr – 12:00 Uhr).
Der Offset-Parameter kann verwendet werden, um dieses Verhalten zu ändern und die Ereignisse am Anfang des Fensters einzuschließen und diejenigen auszuschließen, die am Ende aufgetreten sind.
Beispiele
SELECT System.Timestamp() AS WindowEnd, TollId, COUNT(*)
FROM Input TIMESTAMP BY EntryTime
GROUP BY TollId, TumblingWindow(Duration(hour, 1), Offset(millisecond, -1))
SELECT 'reset' AS command
INTO
alert
FROM
temperature TIMESTAMP BY timeCreated
GROUP BY TumblingWindow(second,15)
HAVING Avg(machine.temperature) > 25
Überlegungen zur Uhrzeit
Jede Fensteroperation gibt am Ende des Fensters ein Ereignis aus. 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.