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.
Azure Stream Analytics nabízí dotazovací jazyk SQL pro provádění transformací a výpočtů v datových proudech událostí.
Podmnožina syntaxe T-SQL
Tento dokument popisuje syntaxi, použití a osvědčené postupy pro dotazovací jazyk Stream Analytics. Všechny příklady použité v tomto dokumentu závisí na scénáři placené linky, jak je popsáno níže.
Dotazovací jazyk Stream Analytics je podmnožinou standardní syntaxe T-SQL pro provádění výpočtů streamování.
Scénář placené linky
Placená stanice je běžný jev – setkáme se s nimi v mnoha expresswayích, mostech a tunelech po celém světě. Každá placená stanice má více nástavců, což může být ruční – to znamená, že zastavíte placení placené linky telefonicky nebo automatizovaně – kde senzor umístěný na kabině naskenuje kartu RFID připevněnou k čelnímu skle vašeho vozidla při průchodu placenou kabinou. Je snadné vizualizovat průchod vozidel přes tyto placené stanice jako datový proud událostí, přes který lze provádět zajímavé operace.
Čas příjezdu vs. čas aplikace
V jakémkoli dočasném systému, jako je Azure Stream Analytics, je důležité pochopit průběh času. Každá událost, která prochází systémem, má časové razítko, ke kterému je možné přistupovat prostřednictvím system.Timestamp(). Jinými slovy každá událost v našem systému znázorňuje bod v čase. Toto časové razítko může být buď čas aplikace, který může uživatel zadat v dotazu, nebo systém může přiřadit na základě času příjezdu. Čas příjezdu má různé významy na základě vstupních zdrojů. U událostí z centra událostí Azure je čas přijetí časové razítko, které je dáno centrem událostí; v případě úložiště objektů blob se jedná o čas poslední změny objektu blob. Časové razítko je bod v čase, který je relevantní pro zachycení nebo analýzu dat. Pokud chce uživatel použít čas aplikace, může to udělat pomocí klíčového slova TIMESTAMP BY . Ve výše uvedeném scénáři se jedná o vstup vozidla do placené kabiny. Je důležité identifikovat "časové razítko" v příchozím datovém proudu dat, které by mělo zajistit, aby čas zachycený také potvrdil výskyt události. Pokud například sledujete peněžní čítače a chcete spočítat počet fakturovaných zákazníků, v ideálním případě by časové razítko události mělo být "platba úspěšná" místo času vygenerovaného fakturou.
Časové razítko podle
Ve službě Azure Stream Analytics mají všechny události dobře definované časové razítko. Pokud chce uživatel použít čas aplikace, může pomocí klíčového slova TIMESTAMP BY určit sloupec v datové části, který by se měl použít k časovému razítku každé příchozí události k provedení jakýchkoli dočasných výpočtů, jako je Windowing, Joins atd. Doporučujeme používat TIMESTAMP BY v čase příjezdu jako osvědčený postup. TIMESTAMP BY lze použít v libovolném sloupci typu datetime a všechny formáty ISO 8601 jsou podporovány. System.Timestamp() lze použít pouze v nástroji Select.
Následuje příklad TIMESTAMP BY, který používá sloupec EntryTime jako čas aplikace pro události:
SELECT TollId, EntryTime AS VehicleEntryTime, LicensePlate, State, Make, Model, VehicleType, VehicleWeight, Toll, Tag
FROM TollTagEntry TIMESTAMP BY EntryTime
Citlivost na velikost písmen v názvu pole
Názvy polí pro úlohu vytvořenou pomocí úrovně kompatibility 1.0 se při zpracování modulem Azure Stream Analytics změní na malá písmena (nerozlišují malá písmena). U vstupních formátů, které podporují schéma rozlišující malá a velká písmena, například JSON, můžete vytvořit události, které mají duplicitní pole, když se názvy polí porovnávají způsobem bez rozlišování velkých a malých písmen. Takové události se považují za neplatné a během zpracování se zahodí.
Při vytváření úlohy Stream Analytics pomocí úrovně kompatibility 1.1 nebo vyšší se zachová citlivost na velká a malá písmena pro názvy polí. Další informace najdete v tématu konfigurace úrovně kompatibility .
V této části
Pokyny k používání dotazovacího jazyka Stream Analytics najdete v následujících tématech.