Skákající okno (Azure Stream Analytics)
Na rozdíl od přeskakujícího okna plánoval model skákajícího okna překrývající se okna. Specifikace skákajících oken se skládají ze tří parametrů: timeunit(timeunit), velikost okna (jak dlouho každé okno trvá) a hopsize (o kolik se každé okno posune směrem dopředu vzhledem k předchozímu). Kromě toho lze jako volitelný čtvrtý parametr použít velikost posunu . Všimněte si, že přeskakující okno je jednoduše skákající okno, jehož "segment směrování" se rovná jeho "velikosti".
Následující obrázek znázorňuje datový proud s řadou událostí. Každé pole představuje skákající okno a události, které se do tohoto okna započítávají za předpokladu, že segment směrování je 5 a velikost je 10.
Syntax
{HOPPINGWINDOW | HOPPING} ( timeunit , windowsize , hopsize, [offsetsize] )
{HOPPINGWINDOW | HOPPING} ( Duration( timeunit , windowsize ) , Hop (timeunit , windowsize ), [Offset(timeunit , offsetsize)])
Poznámka
Skákající okno se dá použít dvěma způsoby. Pokud má velikost okna a velikost směrování stejný časový limit, můžete ji použít bez funkcí Duration a Segment směrování. Funkci Duration můžete použít také s jinými typy oken k určení velikosti okna.
Argumenty
časová jednotka
Je jednotka času pro velikost okna nebo velikost směrování. V následující tabulce jsou uvedeny všechny platné argumenty časového intervalu .
Časová jednotka | Zkratky |
---|---|
day | dd, d |
hour | hh |
minute | mi, n |
second | ss, s |
Milisekund | Paní |
mikrosekundy | Mcs |
velikost okna
Velké celé číslo, které popisuje velikost okna. Velikost okna je statická a nelze ji dynamicky měnit za běhu.
Maximální velikost okna je ve všech případech 7 dnů.
hopsize
Velké celé číslo, které popisuje velikost směrování.
offsetsize
Skákající okna jsou ve výchozím nastavení zahrnutá na konci okna a výhradní na začátku – například okno 12:05–13:05 bude obsahovat události, ke kterým došlo přesně ve 13:05, ale nebudou zahrnovat události, ke kterým došlo ve 12:05:05 (tyto události budou součástí okna od 12:00 do 13:00).
Pomocí parametru Offset lze změnit chování a zahrnout události na začátku okna a vyloučit ty, které se staly na konci.
Příklady
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))
Časový faktor
Každá operace okna vypíše událost na konci okna (v případě skákajících oken k tomu dochází při každé velikosti segmentu směrování). Okna Služby Azure Stream Analytics se otevírají v čase spuštění okna a zavírají se v čase ukončení okna. Pokud máte například 5minutový interval od 0:00 do 12:05, budou v tomto okně zahrnuty všechny události s časovým razítkem delším než 12:00 a až do 12:05 včetně. Výstupem okna bude jedna událost založená na použité agregační funkci s časovým razítkem odpovídajícím času ukončení okna. Časové razítko výstupní události okna lze promítt v příkazu SELECT pomocí vlastnosti System.Timestamp() pomocí aliasu.