Okno przeskoku (Azure Stream Analytics)
W przeciwieństwie do okien wirujących, przeskok model okien zaplanowane nakładające się okna. Specyfikacja okna przeskoku składa się z trzech parametrów: timeunit, windowsize (jak długo trwa każde okno) i przeskoku (o ile każde okno przechodzi do przodu względem poprzedniego). Ponadto rozmiar przesunięcia może być używany jako opcjonalny czwarty parametr. Należy pamiętać, że okno wirowania jest po prostu oknem przeskoku, którego "przeskok" jest równy jego "rozmiar".
Na poniższej ilustracji przedstawiono strumień z serią zdarzeń. Każde pole reprezentuje okno przeskoku i zdarzenia, które są liczone w ramach tego okna, przy założeniu, że "przeskok" wynosi 5, a "rozmiar" to 10.
—
Składnia
{HOPPINGWINDOW | HOPPING} ( timeunit , windowsize , hopsize, [offsetsize] )
{HOPPINGWINDOW | HOPPING} ( Duration( timeunit , windowsize ) , Hop (timeunit , windowsize ), [Offset(timeunit , offsetsize)])
Uwaga
Okno przeskoku można używać na dwa powyższe sposoby. Jeśli okno i rozmiar przeskoku ma ten sam czas, można go użyć bez funkcji Czas trwania i przeskok. Funkcja Duration może być również używana z innymi typami okien w celu określenia rozmiaru okna.
Argumenty
timeunit
Jest jednostką czasu dla okna lub rozmiaru przeskoku. Poniższa tabela zawiera listę wszystkich prawidłowych argumentów 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. Windowsize jest statyczny i nie można go dynamicznie zmieniać w czasie wykonywania.
Maksymalny rozmiar okna we wszystkich przypadkach wynosi 7 dni.
hopsize
Duża liczba całkowita, która opisuje rozmiar przeskoku.
przesunięcie rozmiaru
Domyślnie okna przeskokujące są włączone na końcu okna i wykluczają się na początku — na przykład 12:05–13:05 okno będzie zawierać zdarzenia, które miały miejsce dokładnie o godzinie 13:05, ale nie będą zawierać zdarzeń, które miały miejsce o godzinie 12:05:05 (to zdarzenie będzie częścią okna 12:00–01:00).
Parametr Przesunięcia może służyć do zmiany zachowania i uwzględnienia zdarzeń na początku okna i wykluczenia tych, które wystąpiły w końcu.
Przykłady
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))
Zagadnienia dotyczące czasu
Każda operacja okna generuje zdarzenie na końcu okna (w przypadku okien przeskoków odbywa się to przy każdym rozmiarze przeskoku). 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 do sygnatury czasowej 12:05 włącznie zostaną uwzględnione 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ć przewidywana w instrukcji SELECT przy użyciu właściwości System.Timestamp() przy użyciu aliasu.