Přeskakující okno (Azure Stream Analytics)
Přeskakující okna jsou řada nepřekrývajících se souvislých časových intervalů s pevnou velikostí. Následující diagram znázorňuje stream s řadou událostí a způsob jejich mapování na 10sekundová přeskakující okna.
Syntax
{TUMBLINGWINDOW | TUMBLING} ( timeunit , windowsize, [offsetsize] )
{TUMBLINGWINDOW | TUMBLING} ( Duration( timeunit , windowsize ), [Offset(timeunit , offsetsize)] )
Poznámka
Přeskakující okno je možné použít dvěma způsoby výše. Pokud chcete zajistit konzistenci s přeskakujícími okny, můžete použít funkci Duration (Doba trvání) se všemi typy oken k určení velikosti okna. Doba trvání okna musí být kladná konstanta float.
Argumenty
timeunit
Je časová jednotka pro velikost okna. V následující tabulce jsou uvedeny všechny platné argumenty časového intervalu.
Časová nit | 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 7 dní.
offsetsize
Ve výchozím nastavení jsou přeskakující okna zahrnutá na konci okna a na začátku jsou výhradní – například okno od 12:00 do 13:00 bude obsahovat události, které se staly přesně ve 13:00, ale nebudou zahrnovat události, které se staly ve 12:00 (tyto události budou součástí okna 11:00–12:00).
Parametr Offset lze použít ke změně tohoto chování a zahrnutí událostí na začátku okna a vyloučení událostí, ke kterým došlo na konci.
Příklady
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
Časové aspekty
Každá operace okna vypíše událost na konci okna. Okna služby Azure Stream Analytics se otevřou v počátečním čase okna a zavírají se v čase ukončení okna. Pokud máte například 5minutové okno od 0:00 do 12:05, budou v tomto okně zahrnuty všechny události s časovým razítkem větším než 0:00 a časovým razítkem 12:05 včetně. Výstupem okna bude jedna událost založená na agregační funkci použité s časovým razítkem odpovídajícím koncovému času okna. Časové razítko výstupní události okna lze promítnou v příkazu SELECT pomocí vlastnosti System.Timestamp() pomocí aliasu.