Referenční informace k dotazovacímu jazyku pro Stream Analytics

Azure Stream Analytics nabízí dotazovací jazyk SQL pro provádění transformací a výpočtů nad datovými proudy událostí.

Stream Analytics Query Language, 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 se spoléhají na scénář placené stanice, 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é kabiny

Mýtná stanice je běžným jevem – setkáváme se s nimi na mnoha dálnicích, mostech a tunelech po celém světě. Každá mýtná stanice má několik mýtných budek, které mohou být ručně – to znamená, že zastavíte, abyste zaplatili mýto obsluhovi, nebo automatizované – kde senzor umístěný na vrcholu kabiny skenuje kartu RFID připevněnou na čelní sklo vašeho vozidla, když procházíte mýtnou kabinou. Je snadné vizualizovat průchod vozidel přes tyto placené stanice jako stream 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é porozumět průběhu času. Každá událost, která prochází systémem, má časové razítko, ke kterému se dá získat přístup přes 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 v závislosti na vstupních zdrojích. U událostí z centra událostí Azure je čas příjezdu časové razítko dané centrem událostí. v případě služby Blob Storage 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é stanice. Je důležité identifikovat "časové razítko" v příchozím datovém proudu. Je třeba zajistit, aby zachycený čas také potvrdil výskyt události. Pokud například někdo monitoruje pokladní přepážky a chce spočítat počet fakturovaných zákazníků, pak by v ideálním případě měl být časovým razítkem události "platba úspěšná" místo času "vygenerování faktury".

TIMESTAMP BY

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, aby se provedly jakékoli dočasné výpočty, jako je Windowing, Joins atd. Jako osvědčený postup doporučujeme používat funkci TIMESTAMP BY během doby příjezdu. Funkce TIMESTAMP BY se dá použít pro libovolný sloupec typu datetime a podporují se všechny formáty ISO 8601. System.Timestamp() se dá použít jenom 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 malých a malých písmen 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í se malá a 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 při porovnávání názvů polí způsobem, který rozlišuje velká a malá písmena, vytvářet události, které mají duplicitní pole. 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šší je u názvů polí zachována rozlišování velkých a malých písmen. 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.

Viz také