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.
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í za běhu ú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.
Aktualizujte úroveň kompatibility úlohy v Azure Portalu.
- 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í upsert operace bylo nastaveno na vložení nebo sloučení.
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 o výstupu Azure Stream Analytics do Azure Cosmos DB.
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.
Úroveň 1.2: DateTimeOffset už se neupravuje.
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 zapsá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 mapuje 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. Falešné se mapuje na 0 a pravdivé se mapuje na 1. Průchozí dotaz, jako je SELECT value INTO output1 FROM input1 čtení { "value": true } JSON ze vstupu1, zapíše do výstupu1 hodnotu JSON { "value": true }. Můžete přetypovat hodnotu na typ BIT v dotazu, aby se ve výstupu pro formáty podporující datový typ Boolean zobrazovala jako true a false.
Ú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 velikost písmen se zachová u názvů polí při jejich zpracování Azure Stream Analytics enginem.
Poznámka:
Zachování citlivosti na velká a malá písmena ještě není k dispozici pro úlohy Stream Analytics hostované v 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 vstupu, i když toto pole nebylo použito v dotazu, převede se na 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ář.