Okno wirowania (Azure Stream Analytics)
Okna wirowania to ciągłe, nienakładające się na siebie serie odstępów czasu o stałych rozmiarach. Na poniższym diagramie przedstawiono strumień z serią zdarzeń i sposób ich mapowania na 10-sekundowe okna wirowania.
w
Składnia
{TUMBLINGWINDOW | TUMBLING} ( timeunit , windowsize, [offsetsize] )
{TUMBLINGWINDOW | TUMBLING} ( Duration( timeunit , windowsize ), [Offset(timeunit , offsetsize)] )
Uwaga
Okno wirowania może być używane na dwa sposoby. Aby umożliwić spójność z oknem przeskoku, funkcja Duration może być również używana ze wszystkimi typami okien w celu określenia rozmiaru okna. Czas trwania okna musi być dodatnią stałą zmiennoprzecinkową.
Argumenty
timeunit
Jest jednostką czasu dla windowsize. W poniższej tabeli wymieniono wszystkie prawidłowe argumenty timeunit.
Timeunit | Skróty |
---|---|
dzień | dd, d |
godzina | hh |
minuta | mi, n |
sekunda | ss, s |
Milisekundy | Pani |
mikrosekundy | Mcs |
windowsize
Duża liczba całkowita, która opisuje rozmiar okna. Okna są statyczne i nie można ich dynamicznie zmieniać w czasie wykonywania.
Maksymalny rozmiar okna wynosi 7 dni.
przesunięcie rozmiaru
Domyślnie okna wirowania są włączone na końcu okna i wykluczają się na początku — na przykład 12:00–13:00 okno będzie zawierać zdarzenia, które miały miejsce dokładnie o godzinie 13:00, ale nie będą zawierać zdarzeń, które miały miejsce o godzinie 12:00 (te zdarzenia będą częścią okna 11:00–12:00).
Parametr Przesunięcia może służyć do zmiany tego zachowania i uwzględnienia zdarzeń na początku okna i wykluczenia tych, które miały miejsce w końcu.
Przykłady
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
Zagadnienia dotyczące czasu
Każda operacja okna generuje zdarzenie na końcu okna. Okna usługi Azure Stream Analytics są otwierane w czasie rozpoczęcia okna i zamykane w czasie zakończenia okna. Jeśli na przykład masz 5-minutowe okno od 12:00 do 12:05, wszystkie zdarzenia ze znacznikiem czasu większym niż 12:00 i znacznik czasu 12:05 włącznie będą uwzględniane w tym oknie. Dane wyjściowe okna będą pojedynczym zdarzeniem opartym na funkcji agregującej używanej z sygnaturą czasową równą godzinie zakończenia okna. Sygnatura czasowa zdarzenia wyjściowego okna może być rzutowana w instrukcji SELECT przy użyciu właściwości System.Timestamp() przy użyciu aliasu.