Compatibiliteitsniveau voor Azure Stream Analytics-taken

In dit artikel wordt de optie voor het compatibiliteitsniveau in Azure Stream Analytics beschreven.

Stream Analytics is een beheerde service, met regelmatige functie-updates en constante prestatieverbeteringen. De meeste runtime-updates van de service worden automatisch beschikbaar gesteld aan eindgebruikers, onafhankelijk van het compatibiliteitsniveau. Wanneer een nieuwe functionaliteit echter een wijziging in het gedrag van bestaande taken introduceert of een wijziging in de manier waarop gegevens worden gebruikt in actieve taken, introduceren we deze wijziging onder een nieuw compatibiliteitsniveau. U kunt uw bestaande Stream Analytics-taken zonder grote wijzigingen uitvoeren door de instelling voor het compatibiliteitsniveau lager te laten. Wanneer u klaar bent voor het nieuwste runtimegedrag, kunt u zich aanmelden door het compatibiliteitsniveau te verhogen.

Een compatibiliteitsniveau kiezen

Het compatibiliteitsniveau bepaalt het runtimegedrag van een Stream Analytics-taak.

Azure Stream Analytics ondersteunt momenteel drie compatibiliteitsniveaus:

  • 1.2 - Nieuwste gedrag met de meest recente verbeteringen
  • 1.1 - Vorig gedrag
  • 1.0 - Oorspronkelijk compatibiliteitsniveau, enkele jaren geleden geïntroduceerd tijdens de algemene beschikbaarheid van Azure Stream Analytics.

Wanneer u een nieuwe Stream Analytics-taak maakt, is het een best practice om deze te maken met behulp van het meest recente compatibiliteitsniveau. Start uw taakontwerp op basis van het nieuwste gedrag om later extra wijzigingen en complexiteit te voorkomen.

Het compatibiliteitsniveau instellen

U kunt het compatibiliteitsniveau voor een Stream Analytics-taak instellen in de Azure Portal of met behulp van de REST API-aanroep voor taak maken.

Het compatibiliteitsniveau van de taak in de Azure Portal bijwerken:

  1. Gebruik de Azure Portal om naar uw Stream Analytics-taak te zoeken.
  2. Stop de taak voordat u het compatibiliteitsniveau bijwerkt. U kunt het compatibiliteitsniveau niet bijwerken als uw taak een actieve status heeft.
  3. Selecteer onder de kop Configureren de optie Compatibiliteitsniveau.
  4. Kies de gewenste waarde voor het compatibiliteitsniveau.
  5. Selecteer Opslaan onderaan de pagina.

Compatibiliteitsniveau van Stream Analytics in Azure Portal

Wanneer u het compatibiliteitsniveau bijwerkt, valideert de T-compiler de taak met de syntaxis die overeenkomt met het geselecteerde compatibiliteitsniveau.

Compatibiliteitsniveau 1.2

De volgende belangrijke wijzigingen zijn geïntroduceerd in compatibiliteitsniveau 1.2:

AMQP-berichtenprotocol

1.2 niveau: Azure Stream Analytics maakt gebruik van het ADVANCED Message Queueing Protocol (AMQP) -berichtenprotocol om naar Service Bus-wachtrijen en -onderwerpen te schrijven. Met AMQP kunt u platformoverschrijdende, hybride toepassingen bouwen met behulp van een open standaardprotocol.

Georuimtelijke functies

Vorige niveaus: Azure Stream Analytics heeft geografieberekeningen gebruikt.

1.2 niveau: Met Azure Stream Analytics kunt u geometrische geprojecteerde geografische coördinaten berekenen. De handtekening van de georuimtelijke functies verandert niet. Hun semantiek is echter iets anders, waardoor de berekening nauwkeuriger is dan voorheen.

Azure Stream Analytics biedt ondersteuning voor het indexeren van georuimtelijke referentiegegevens. Referentiegegevens met georuimtelijke elementen kunnen worden geïndexeerd voor een snellere joinberekening.

De bijgewerkte georuimtelijke functies brengen de volledige expressiviteit van de WKT-georuimtelijke indeling (Well Known Text) met zich mee. U kunt andere georuimtelijke onderdelen opgeven die eerder niet werden ondersteund met GeoJson.

Zie Updates georuimtelijke functies in Azure Stream Analytics - Cloud en IoT Edge voor meer informatie.

Parallelle queryuitvoering voor invoerbronnen met meerdere partities

Vorige niveaus: Voor Azure Stream Analytics-query's is het gebruik van de PARTITION BY-component vereist om queryverwerking te parallelliseren tussen invoerbronpartities.

1.2 niveau: Als querylogica kan worden geparallelliseerd tussen invoerbronpartities, maakt Azure Stream Analytics afzonderlijke query-exemplaren en worden berekeningen parallel uitgevoerd.

Systeemeigen bulk-API-integratie met Azure Cosmos DB-uitvoer

Vorige niveaus: Het upsert-gedrag is invoegen of samenvoegen.

1.2 niveau: Systeemeigen bulk-API-integratie met Azure Cosmos DB-uitvoer maximaliseert de doorvoer en verwerkt efficiënt beperkingsaanvragen. Zie de pagina Azure Stream Analytics-uitvoer naar Azure Cosmos DB voor meer informatie.

Het upsert-gedrag is invoegen of vervangen.

DateTimeOffset bij het schrijven naar SQL-uitvoer

Vorige niveaus:DateTimeOffset-typen zijn aangepast naar UTC.

1.2 niveau: DateTimeOffset is niet meer aangepast.

Lang bij het schrijven naar SQL-uitvoer

Vorige niveaus: Waarden zijn afgekapt op basis van het doeltype.

1.2 niveau: Waarden die niet in het doeltype passen, worden verwerkt volgens het uitvoerfoutbeleid.

Serialisatie van records en matrixen bij het schrijven naar SQL-uitvoer

Vorige niveaus: Records zijn geschreven als 'Record' en matrices als 'Matrix'.

1.2 niveau: Records en matrices worden geserialiseerd in JSON-indeling.

Strikte validatie van het voorvoegsel van functies

Vorige niveaus: Er is geen strikte validatie van functievoorvoegsels.

1.2 niveau: Azure Stream Analytics heeft een strikte validatie van functievoorvoegsels. Het toevoegen van een voorvoegsel aan een ingebouwde functie veroorzaakt een fout. wordt bijvoorbeeldmyprefix.ABS(…) niet ondersteund.

Het toevoegen van een voorvoegsel aan ingebouwde aggregaties resulteert ook in een fout. wordt bijvoorbeeld myprefix.SUM(…) niet ondersteund.

Het gebruik van het voorvoegsel 'systeem' voor door de gebruiker gedefinieerde functies resulteert in een fout.

Matrix en object als sleuteleigenschappen in de Azure Cosmos DB-uitvoeradapter niet toestaan

Vorige niveaus: Matrix- en objecttypen werden ondersteund als sleuteleigenschap.

1.2 niveau: Matrix- en objecttypen worden niet meer ondersteund als sleuteleigenschap.

Het booleaanse type deserialiseren in JSON, AVRO en PARQUET

Vorige niveaus: In Azure Stream Analytics wordt de Booleaanse waarde gedeserialiseerd in het type BIGINT: false maps to 0 and true maps to 1. De uitvoer maakt alleen booleaanse waarden in JSON, AVRO en PARQUET als u gebeurtenissen expliciet converteert naar BIT. Een passthrough-query, zoals SELECT value INTO output1 FROM input1 het lezen van een JSON { "value": true } uit input1, schrijft bijvoorbeeld een JSON-waarde { "value": 1 }in de uitvoer1.

1.2 niveau: Azure Stream Analytics deserialisatie van booleaanse waarde in het type BIT. Onjuiste toewijzingen aan 0 en true-kaarten aan 1. Een passthrough-query, zoals SELECT value INTO output1 FROM input1 het lezen van een JSON { "value": true } uit input1, schrijft een JSON-waarde { "value": true }in de output1. U kunt waarde casten om BIT in de query te typen om ervoor te zorgen dat deze worden weergegeven als true en false in de uitvoer voor indelingen die booleaanse typen ondersteunen.

Compatibiliteitsniveau 1.1

De volgende belangrijke wijzigingen worden geïntroduceerd in compatibiliteitsniveau 1.1:

Service Bus XML-indeling

1.0 niveau: Azure Stream Analytics heeft DataContractSerializer gebruikt, dus de berichtinhoud bevat XML-tags. Bijvoorbeeld:

@\u0006string\b3http://schemas.microsoft.com/2003/10/Serialization/\u0001{ "SensorId":"1", "Temperature":64\}\u0001

1.1 niveau: De berichtinhoud bevat de stream rechtstreeks zonder extra tags. Bijvoorbeeld: { "SensorId":"1", "Temperature":64}

Persistente hoofdlettergevoeligheid voor veldnamen

1.0 niveau: Veldnamen zijn gewijzigd in kleine letters bij verwerking door de Azure Stream Analytics-engine.

Niveau 1.1: hoofdlettergevoeligheid blijft behouden voor veldnamen wanneer deze worden verwerkt door de Azure Stream Analytics-engine.

Notitie

Persistente hoofdlettergevoeligheid is nog niet beschikbaar voor Stream Analytics-taken die worden gehost met behulp van de Edge-omgeving. Als gevolg hiervan worden alle veldnamen geconverteerd naar kleine letters als uw taak wordt gehost in Edge.

FloatNaNDeserializationDisabled

1.0 niveau: De opdracht CREATE TABLE heeft geen gebeurtenissen gefilterd met NaN (Not-a-Number. Bijvoorbeeld Infinity, -Infinity) in een kolomtype FLOAT, omdat ze buiten het gedocumenteerde bereik voor deze getallen vallen.

1.1 niveau: Met CREATE TABLE kunt u een sterk schema opgeven. De Stream Analytics-engine valideert dat de gegevens aan dit schema voldoen. Met dit model kunt u met de opdracht gebeurtenissen filteren met NaN-waarden.

Automatische conversie van datum/tijd-tekenreeksen naar datum/tijd-type bij inkomend verkeer uitschakelen voor JSON

1.0 niveau: De JSON-parser converteert automatisch tekenreekswaarden met datum-/tijd-/zonegegevens naar het type DATETIME bij inkomend verkeer, zodat de waarde onmiddellijk de oorspronkelijke opmaak en tijdzone-informatie verliest. Omdat dit wordt gedaan bij inkomend verkeer, wordt het, zelfs als dat veld niet is gebruikt in de query, geconverteerd naar UTC DateTime.

Niveau 1.1: Er is geen automatische conversie van tekenreekswaarden met datum-/tijd-/zonegegevens naar het type DATETIME. Hierdoor blijven de tijdzone-informatie en de oorspronkelijke opmaak behouden. Als het veld NVARCHAR(MAX) echter in de query wordt gebruikt als onderdeel van bijvoorbeeld een DATETIME-expressie (de functie DATEADD), wordt het geconverteerd naar het type DATETIME om de berekening uit te voeren en verliest het de oorspronkelijke vorm.

Volgende stappen