Úroveň kompatibility pro úlohy Azure Stream Analytics
Tento článek popisuje možnost úrovně kompatibility ve službě Azure Stream Analytics.
Stream Analytics je spravovaná služba s pravidelnými aktualizacemi funkcí a konstantními vylepšeními výkonu. Většina aktualizací modulu runtime služby se koncovým uživatelům automaticky zpřístupní nezávisle na úrovni kompatibility. Pokud ale nová funkce zavádí změnu chování stávajících úloh nebo změna způsobu, jakým se data spotřebovávají ve spuštěných úlohách, zavádíme tuto změnu na nové úrovni kompatibility. Stávající úlohy Stream Analytics můžete ponechat spuštěné bez velkých změn tím, že ponecháte nastavení úrovně kompatibility nižší. Až budete připraveni na nejnovější chování modulu runtime, můžete se přihlásit zvýšením úrovně kompatibility.
Volba úrovně kompatibility
Úroveň kompatibility řídí chování modulu runtime úlohy Stream Analytics.
Azure Stream Analytics v současné době podporuje tři úrovně kompatibility:
- 1.2 – Nejnovější chování s nejnovějšími vylepšeními
- 1.1 – Předchozí chování
- 1.0 – Původní úroveň kompatibility, která byla zavedena před několika lety během obecné dostupnosti azure Stream Analytics.
Když vytvoříte novou úlohu Stream Analytics, je osvědčeným postupem ho vytvořit pomocí nejnovější úrovně kompatibility. Zahajte návrh úlohy, který bude záviset na nejnovějších chováních, abyste se vyhnuli pozdějším změnám a složitosti.
Nastavení úrovně kompatibility
Úroveň kompatibility pro úlohu Stream Analytics můžete nastavit na webu Azure Portal nebo pomocí volání rozhraní REST API pro vytvoření úlohy.
Aktualizace úrovně kompatibility úlohy na webu Azure Portal:
- Pomocí webu Azure Portal vyhledejte úlohu Stream Analytics.
- Před aktualizací úrovně kompatibility zastavte úlohu. Úroveň kompatibility nemůžete aktualizovat, pokud je vaše úloha ve spuštěném stavu.
- V části Konfigurovat vyberte úroveň kompatibility.
- Zvolte požadovanou hodnotu úrovně kompatibility.
- Vyberte Uložit v dolní části stránky.
Při aktualizaci úrovně kompatibility kompilátor T ověří úlohu pomocí syntaxe odpovídající vybrané úrovni kompatibility.
Úroveň kompatibility 1.2
V úrovni kompatibility 1.2 jsou zavedeny následující hlavní změny:
Protokol zasílání zpráv AMQP
1.2 úroveň: Azure Stream Analytics používá protokol zasílání zpráv AMQP (Advanced Message Queueing Protocol) k zápisu do front a témat služby Service Bus. AMQP umožňuje vytvářet multiplatformní hybridní aplikace pomocí otevřeného standardního protokolu.
Geoprostorové funkce
Předchozí úrovně: Azure Stream Analytics používal výpočty zeměpisu.
1.2 úroveň: Azure Stream Analytics umožňuje vypočítat geometrické předpokládané geografické souřadnice. V podpisu geoprostorových funkcí nedošlo k žádné změně. Jejich sémantika se ale mírně liší, což umožňuje přesnější výpočty než dříve.
Azure Stream Analytics podporuje indexování geoprostorových referenčních dat. Referenční data obsahující geoprostorové prvky je možné indexovat pro rychlejší výpočet spojení.
Aktualizované geoprostorové funkce přinášejí plnou výraznost geoprostorového formátu WKT (Well Known Text). U GeoJsonu můžete zadat další geoprostorové komponenty, které nebyly dříve podporovány.
Další informace najdete v tématu Aktualizace geoprostorových funkcí v Azure Stream Analytics – Cloud a IoT Edge.
Paralelní spouštění dotazů pro vstupní zdroje s více oddíly
Předchozí úrovně: Dotazy Azure Stream Analytics vyžadovaly použití klauzule PARTITION BY k paralelizaci zpracování dotazů napříč vstupními zdrojovými oddíly.
1.2 úroveň: Pokud je možné logiku dotazu paralelizovat napříč vstupními zdrojovými oddíly, Azure Stream Analytics vytvoří samostatné instance dotazů a spouští výpočty paralelně.
Nativní integrace bulk API s výstupem služby Azure Cosmos DB
Předchozí úrovně: Chování upsertu bylo vloženo nebo sloučeno.
1.2 úroveň: Nativní integrace rozhraní Bulk API s výstupem služby Azure Cosmos DB maximalizuje propustnost a efektivně zpracovává požadavky na omezování. Další informace najdete na stránce Azure Cosmos DB na výstup Azure Stream Analytics.
Chování upsertu je vložení nebo nahrazení.
DateTimeOffset při zápisu do výstupu SQL
Předchozí úrovně: Typy DateTimeOffset byly upraveny na UTC.
1.2 úroveň: DateTimeOffset již není upraven.
Dlouhé při zápisu do výstupu SQL
Předchozí úrovně: Hodnoty byly zkráceny na základě cílového typu.
1.2 úroveň: Hodnoty, které se nevejdou do cílového typu, se zpracovávají podle zásad chyb výstupu.
Serializace záznamů a polí při zápisu do výstupu SQL
Předchozí úrovně: Záznamy byly zapsány jako Záznam a pole byla napsána jako Pole.
1.2 úroveň: Záznamy a pole jsou serializovány ve formátu JSON.
Striktní ověření předpony funkcí
Předchozí úrovně: Pro předpony funkcí nebylo žádné přísné ověření.
1.2 úroveň: Azure Stream Analytics má přísné ověřování předpon funkcí. Přidání předpony do integrované funkce způsobí chybu. Například myprefix.ABS(…)
se nepodporuje.
Přidání předpony k předdefinovaným agregacím má také za následek chybu. Například myprefix.SUM(…)
se nepodporuje.
Použití předpony "system" pro všechny uživatelem definované funkce způsobí chybu.
Zakázat pole a objekt jako klíčové vlastnosti ve výstupním adaptéru služby Azure Cosmos DB
Předchozí úrovně: Typy polí a objektů byly podporovány jako klíčová vlastnost.
1.2 úroveň: Typy polí a objektů již nejsou podporovány jako klíčová vlastnost.
Deserializace logického typu ve formátu JSON, AVRO a PARQUET
Předchozí úrovně: Azure Stream Analytics deserializuje logickou hodnotu do typu BIGINT – false mapuje na 0 a true mapy na 1. Výstup vytvoří pouze logické hodnoty ve formátu JSON, AVRO a PARQUET, pokud explicitně převedete události na BIT.
Například průchozí dotaz, jako je SELECT value INTO output1 FROM input1
čtení JSON { "value": true }
ze vstupu1, zapíše do výstupu1 hodnotu { "value": 1 }
JSON .
1.2 úroveň: Azure Stream Analytics deserializuje logickou hodnotu do typu BIT. False mapy na 0 a true mapy na 1. Průchozí dotaz, jako je SELECT value INTO output1 FROM input1
čtení JSON { "value": true }
ze vstupu1, zapíše do výstupu1 hodnotu { "value": true }
JSON . Hodnotu můžete přetypovat tak, aby se v dotazu zobrazovala jako true a false ve výstupu pro formáty podporující logický typ.
Úroveň kompatibility 1.1
V úrovni kompatibility 1.1 jsou zavedeny následující hlavní změny:
Formát XML služby Service Bus
1.0 úroveň: Azure Stream Analytics použil DataContractSerializer, takže obsah zprávy obsahoval značky XML. Příklad:
@\u0006string\b3http://schemas.microsoft.com/2003/10/Serialization/\u0001{ "SensorId":"1", "Temperature":64\}\u0001
1.1 úroveň: Obsah zprávy obsahuje stream přímo bez dalších značek. Příklad: { "SensorId":"1", "Temperature":64}
Zachování citlivosti malých a velkých písmen u názvů polí
1.0 úroveň: Názvy polí se při zpracování modulem Azure Stream Analytics změnily na malá písmena.
1.1 úroveň: Citlivost na malá a velká písmena se zachová u názvů polí při jejich zpracování modulem Azure Stream Analytics.
Poznámka:
Zachování citlivosti na malá a velká písmena ještě není k dispozici pro úlohy Stream Analytic hostované pomocí prostředí Edge. V důsledku toho se všechny názvy polí převedou na malá písmena, pokud je vaše úloha hostovaná v Edgi.
FloatNaNDeserializationDisabled
Úroveň 1.0: Příkaz CREATE TABLE nefiltroval události pomocí NaN (Not-a-Number). Například Nekonečno, -Infinity) v typu sloupce FLOAT, protože jsou mimo zdokumentovanou oblast pro tato čísla.
1.1 úroveň: CREATE TABLE umožňuje zadat silné schéma. Modul Stream Analytics ověří, že data odpovídají tomuto schématu. V tomto modelu může příkaz filtrovat události s hodnotami NaN.
Zákaz automatického převodu řetězců datetime na typ DateTime při příchozím přenosu dat pro JSON
1.0 úroveň: Analyzátor JSON automaticky převede řetězcové hodnoty s informacemi o datu a čase/pásmu na typ DATETIME při příchozím přenosu dat, takže hodnota okamžitě ztratí původní formátování a informace o časovém pásmu. Vzhledem k tomu, že se to provádí při příchozím přenosu dat, i když toto pole nebylo použito v dotazu, převede se na datum UTC DateTime.
1.1 úroveň: Neexistuje žádný automatický převod řetězcových hodnot s informacemi o datu/času/pásmu na typ DATETIME. V důsledku toho se uchovávají informace o časovém pásmu a původní formátování. Pokud se ale pole NVARCHAR(MAX) použije v dotazu jako součást výrazu DATETIME (například funkce DATEADD), převede se na typ DATETIME, který provede výpočet a ztratí původní formulář.