Úvod do Stream Analyticsch funkcí okna

V rámci scénářů streamování je provádění operací s daty obsaženými v dočasných oknech běžným vzorem. Stream Analytics má nativní podporu pro funkce oken a umožňuje vývojářům vytvářet složité úlohy zpracování streamů s minimálním úsilím.

Existuje pět druhů dočasných oken, ze kterých můžete vybírat: bubny, skákající, klouzavé, relačnía snímková okna. Použijte funkce okna v klauzuli Group by syntaxe dotazu v úlohách Stream Analytics. můžete také agregovat události do více oken pomocí funkce Windows ().

Na konci okna se vrátí výstup všech operací s operacemi Window . Všimněte si, že při spuštění úlohy Stream Analytics můžete zadat čas spuštění výstupu úlohy a systém automaticky načte předchozí události v příchozích datových proudech, aby se v zadaném čase načetl výstup do prvního okna. Například pokud začnete s možností nyní , začne ihned generovat data. Výstupem okna bude jediná událost založená na použité agregační funkci. Výstupní událost bude mít časové razítko konce okna a všechny funkce okna budou definovány s pevnou délkou.

Stream Analytics – koncepty funkcí okna

Okno bubnu

Funkce bubnového okna se používají k segmentaci datového proudu do různých časových segmentů a k provedení funkce proti nim, jako je například příklad níže. Hlavním rozlišovacím znakem přeskakujícího okna je, že se opakuje, ale nepřekrývá, tzn. že událost nemůže patřit do více než jednoho přeskakujícího okna.

Okno Stream Analyticsho bubnu

S následujícími vstupními daty (zobrazeno výše):

Označení CreatedAt TimeZone
1 2021-10 – 26T10:15:01 VYTVOŘENÉ
5 2021-10 – 26T10:15:03 VYTVOŘENÉ
4 2021-10 – 26T10:15:06 VYTVOŘENÉ
... ... ...

Následující dotaz:

SELECT System.Timestamp() as WindowEndTime, TimeZone, COUNT(*) AS Count
FROM TwitterStream TIMESTAMP BY CreatedAt
GROUP BY TimeZone, TumblingWindow(second,10)

Vrátí:

WindowEndTime TimeZone Počet
2021-10 – 26T10:15:10 VYTVOŘENÉ 5
2021-10-26T10:15:20 VYTVOŘENÉ 2
2021-10 – 26T10:15:30 VYTVOŘENÉ 4

Okno skákající

Skákající Window Functions přesměrovává přesměrování v čase o pevné období. Je možné je snadno představit jako Bubnová okna, která se můžou překrývat a vysílat častěji než velikost okna. Události mohou patřit do více než jedné sady výsledků okna skákající. Chcete-li, aby okno skákající bylo stejné jako okno s bubnem, určete velikost segmentu směrování, který bude stejný jako velikost okna.

Stream Analytics okno skákající

S následujícími vstupními daty (zobrazeno výše):

Označení CreatedAt Téma
1 2021-10 – 26T10:15:01 Streamování
5 2021-10 – 26T10:15:03 Streamování
4 2021-10 – 26T10:15:06 Streamování
... ... ...

Následující dotaz:

SELECT System.Timestamp() as WindowEndTime, Topic, COUNT(*) AS Count
FROM TwitterStream TIMESTAMP BY CreatedAt
GROUP BY Topic, HoppingWindow(second,10,5)

Vrátí:

WindowEndTime Téma Počet
2021-10 – 26T10:15:10 Streamování 5
2021-10 – 26T10:15:15 Streamování 3
2021-10-26T10:15:20 Streamování 2
2021-10-26T10:15:25 Streamování 4
2021-10 – 26T10:15:30 Streamování 4

Posuvné okno

Posuvná okna, na rozdíl od bubnu nebo skákající Windows, jsou výstupní události jenom pro body v čase, kdy se obsah okna skutečně změní. Jinými slovy, když událost vstoupí do okna nebo je ukončí. Každé okno má tedy alespoň jednu událost. Podobně jako skákající okna můžou události patřit do více než jednoho posuvního okna.

Posuvné okno Stream Analytics 10 sekund

S následujícími vstupními daty (zobrazeno výše):

Označení CreatedAt Téma
1 2021-10 – 26T10:15:10 Streamování
5 2021-10 – 26T10:15:12 Streamování
9 2021-10 – 26T10:15:15 Streamování
7 2021-10 – 26T10:15:15 Streamování
8 2021-10-26T10:15:27 Streamování

Následující dotaz:

SELECT System.Timestamp() as WindowEndTime, Topic, COUNT(*) AS Count
FROM TwitterStream TIMESTAMP BY CreatedAt
GROUP BY Topic, SlidingWindow(second,10)
HAVING COUNT(*) >=3

Vrátí:

WindowEndTime Téma Počet
2021-10 – 26T10:15:15 Streamování 4
2021-10-26T10:15:20 Streamování 3

Okno relace

Okno relace funkcí seskupuje události, které dorazí v podobných časech, a vyfiltruje tak časová období, ve kterých nejsou žádná data. Tato funkce má tři hlavní parametry: časový limit, maximální dobu trvání a dělicí klíč (volitelný).

Okno relace Stream Analytics

Okno relace začíná, když dojde k první události. Pokud v rámci zadaného časového limitu z poslední přijaté události dojde k jiné události, pak se okno rozšíří na novou událost. V opačném případě dojde v případě, že v rámci časového limitu neexistují žádné události, okno je v časovém limitu uzavřen

Pokud se události v rámci zadaného časového limitu chovají, zůstane okno relace delší, než se dosáhne maximální doby trvání. Maximální intervaly kontroly doby trvání jsou nastavené tak, aby měly stejnou velikost jako zadaná maximální doba trvání. Například pokud je maximální doba trvání 10, pak kontroly, pokud by okno překročilo maximální dobu trvání, nastane při t = 0, 10, 20, 30 atd.

Při zadání klíče oddílu se události seskupí podle klíče a okno relace se aplikuje na každou skupinu nezávisle na sobě. Tento oddíl je vhodný pro případy, kdy pro různé uživatele nebo zařízení potřebujete jiná okna relace.

S následujícími vstupními daty (zobrazeno výše):

Označení CreatedAt Téma
1 2021-10 – 26T10:15:01 Streamování
2 2021-10-26T10:15:04 Streamování
3 2021-10 – 26T10:15:13 Streamování
... ... ...

Následující dotaz:

SELECT System.Timestamp() as WindowEndTime, Topic, COUNT(*) AS Count
FROM TwitterStream TIMESTAMP BY CreatedAt
GROUP BY Topic, SessionWindow(second,5,10)

Vrátí:

WindowEndTime Téma Počet
2021-10-26T10:15:09 Streamování 2
2021-10 – 26T10:15:24 Streamování 4
2021-10-26T10:15:31 Streamování 2
2021-10 – 26T10:15:39 Streamování 1

Okno snímku

Vytvořte snímek událostí skupiny systému Windows, které mají stejné časové razítko. Na rozdíl od jiných typů oken, které vyžadují konkrétní funkci okna (například SessionWindow (), můžete použít okno snímku přidáním System. timestamp () do klauzule GROUP by.

Stream Analytics okno snímku

S následujícími vstupními daty (zobrazeno výše):

Označení CreatedAt Téma
1 2021-10-26T10:15:04 Streamování
2 2021-10-26T10:15:04 Streamování
3 2021-10-26T10:15:04 Streamování
... ... ...

Následující dotaz:

SELECT System.Timestamp() as WindowEndTime, Topic, COUNT(*) AS Count
FROM TwitterStream TIMESTAMP BY CreatedAt
GROUP BY Topic, System.Timestamp()

Vrátí:

WindowEndTime Téma Počet
2021-10-26T10:15:04 Streamování 4
2021-10 – 26T10:15:10 Streamování 2
2021-10 – 26T10:15:13 Streamování 1
2021-10 – 26T10:15:22 Streamování 2

Další kroky