Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
✅Eventstream prostředků infrastruktury Azure Stream Analytics ✅
Vytváření oken poskytuje způsob, jak agregovat události v různých časových intervalech v závislosti na konkrétních definicích oken. Existují čtyři druhy časových oken, ze které si můžete vybrat: přeskakování, přeskakování, posuvné a relace.
Funkce Windows() rozšiřuje tento koncept tak, aby současně počítaly výsledky několika různých definic oken. Funkce Windows() umožňuje zadat více než jednu definici okna. Logika dotazu se vypočítá pro každou z těchto definic oken a výsledkem je sjednocení všech výsledků okna.
Vzhledem k tomu, že výsledek funkce Windows() obsahuje kombinaci více oken, musíte rozlišovat mezi různými výsledky. To se provádí přiřazením identity ke každému oknem, ke kterému je možné získat přístup pomocí systémové funkce System.Window(). Id. System.Window() vrátí záznam s ID jako jeho pole.
Windows můžete definovat dvěma způsoby:
Přiřaďte jedinečné identity pomocí funkce Window(),Window ( ID , window_definition ), kde ID je identita window_definition a jedná se o jedinečnou hodnotu varchar(max) nerozlišující malá a velká písmena v rámci konstruktoru Windows.
Bez identit, v takovém případě System.Window(). Id má za následek hodnotu null.
Syntaxe
| Windows ( window_definition, … )
| Windows ( Window ( id , window_definition ), … )
window_definition =
| HoppingWindow ( …
| TumblingWindow ( …
| SlidingWindow ( …
| SessionWindow ( …
| Hopping ( …
| Tumbling ( …
| Sliding ( …
| Session ( …
Poznámka:
Konstrukty systému Windows nelze vnořit. Identity musí být předány všem definicím oken nebo žádné.
Existují zkrácené názvy definic oken, například "Přeskakující", které lze použít ve Windows(), aby se zabránilo opakování slova "okno" jako v Windows(Window('MyWindow', TumblingWindow(…. Zkrácené názvy lze použít také mimo konstruktor systému Windows.
Použití system.Window() není chybou. ID bez konstruktoru Windows, ale jeho hodnota bude null, protože do okna nebyla předána žádná identita.
Pokud se definice oken zadají pomocí funkce Window(), musí všechny definice oken používat funkci Window() a všechna ID nerozlišující malá a velká písmena musí být jedinečná. Hodnota Null není povolena.
System.Window()
Funkci System.Window() lze použít pouze v klauzuli SELECT příkazu GROUP BY k načtení metadat o časovém intervalu seskupení.
Funkce vrátí hodnotu typu Record obsahující id jednoho pole, které obsahuje identitu okna, do kterého událost patří.
Příklady
Vytvořte okno pro počítání aut pro každou dobu trvání 10, 20, 30, 40, 50 a 60 minut bez identity okna.
SELECT
TollId,
COUNT(*)
FROM Input TIMESTAMP BY EntryTime
GROUP BY
TollId,
Windows(
TumblingWindow(minute, 10),
TumblingWindow(minute, 20),
TumblingWindow(minute, 30),
TumblingWindow(minute, 40),
TumblingWindow(minute, 50),
TumblingWindow(minute, 60))
Vytvořte okna s 1minutovým segmentem směrování a čtyřmi různými dobami trvání – 1 min, 15 min, 30 min a 60 min.
SELECT
System.Window().Id,
TollId,
COUNT(*)
FROM Input TIMESTAMP BY EntryTime
GROUP BY
TollId,
Windows(
Window('1 min', TumblingWindow(minute, 1)),
Window('15 min', HoppingWindow(minute, 15, 1)),
Window('30 min', HoppingWindow(minute, 30, 1)),
Window('60 min', HoppingWindow(minute, 60, 1)))
Vytvořte okna s různými velikostmi a výsledky filtrování na základě doby trvání okna zadaného v tabulce Reference.
WITH HoppingWindowResults AS
(
SELECT
System.Window().Id,
TollId,
COUNT(*)
FROM Input TIMESTAMP BY EntryTime
GROUP BY
TollId,
Windows(
Window('H10', Hopping(minute, 10, 5)),
Window('H20', Hopping(minute, 20, 5)),
Window('H30', Hopping(minute, 30, 5)),
Window('H40', Hopping(minute, 40, 5)),
Window('H50', Hopping(minute, 50, 5)),
Window('H60', Hopping(minute, 60, 5)))
)
SELECT HoppingWindowResults.*
FROM HoppingWindowResults
JOIN ReferenceTable ON
HoppingWindowResults.TollId = ReferenceTable.TollId
AND HoppingWindowResults.Id = ReferenceTable.windowId