Niveau de compatibilité pour les travaux Azure Stream AnalyticsCompatibility level for Azure Stream Analytics jobs

Cet article décrit l’option de niveau de compatibilité d’Azure Stream Analytics.This article describes the compatibility level option in Azure Stream Analytics. Stream Analytics est un service managé régulièrement enrichi de nouvelles fonctionnalités et d’améliorations des performances.Stream Analytics is a managed service, with regular feature updates, and performance improvements. La plupart des mises à jour de runtime du service sont automatiquement accessibles aux utilisateurs finals.Most of the service's runtimes updates are automatically made available to end users.

Toutefois, certaines nouvelles fonctionnalités du service introduisent parfois un changement majeur, tel qu’une modification du comportement d’un travail existant, ou une évolution du mode de consommation des données dans les travaux en cours d’exécution.However, some new functionality in the service may introduce a major change, such as a change in the behavior of an existing job, or a change in the way data is consumed in running jobs. Si vous souhaitez que vos travaux Stream Analytics existants continuent de s’exécuter sans changement majeur, laissez le paramètre de niveau de compatibilité défini sur une valeur faible.You can keep your existing Stream Analytics jobs running without major changes by leaving the compatibility level setting lowered. Lorsque vous êtes prêt à intégrer les derniers comportements de runtime, vous pouvez les accepter en augmentant le niveau de compatibilité.When you are ready for the latest runtime behaviors, you can opt-in by raising the compatibility level.

Choisir un niveau de compatibilitéChoose a compatibility level

Le niveau de compatibilité contrôle le comportement d’exécution d’un travail Stream Analytics.Compatibility level controls the runtime behavior of a stream analytics job.

Azure Stream Analytics prend actuellement en charge trois niveaux de compatibilité :Azure Stream Analytics currently supports three compatibility levels:

  • 1.0 : le niveau de compatibilité d’origine a été introduit dans la version en disponibilité générale d’Azure Stream Analytics voici quelques années.1.0 - Original compatibility level, introduced during general availability of Azure Stream Analytics several years ago.
  • 1.1 : comportement précédent1.1 - Previous behavior
  • 1.2 : comportement le plus récent avec les améliorations les plus récentes1.2 - Newest behavior with most recent improvements

Lorsque vous créez un travail Stream Analytics, il est recommandé de le créer à l’aide du dernier niveau de compatibilité.When you create a new Stream Analytics job, it's a best practice to create it by using the latest compatibility level. Démarrez votre conception de travail en vous basant sur les derniers comportements afin d’éviter un ajout de complexité et de modifications par la suite.Start your job design relying upon the latest behaviors, to avoid added change and complexity later on.

Définition du niveau de compatibilitéSet the compatibility level

Vous pouvez définir le niveau de compatibilité d’un travail Stream Analytics dans le Portail Azure ou en appelant l’API REST de création d’un travail.You can set the compatibility level for a Stream Analytics job in the Azure portal or by using the create job REST API call.

Pour mettre à jour le niveau de compatibilité du travail dans le Portail Azure :To update the compatibility level of the job in the Azure portal:

  1. Utilisez le Portail Azure pour accéder à votre travail Stream Analytics.Use the Azure portal to locate to your Stream Analytics job.
  2. Interrompez le travail à l’aide de la commande Arrêter avant de mettre à jour le niveau de compatibilité.Stop the job before updating the compatibility level. Si votre travail est en cours d’exécution, vous ne pouvez pas mettre à jour le niveau de compatibilité.You can't update the compatibility level if your job is in a running state.
  3. Sous le titre Configurer, sélectionnez Niveau de compatibilité.Under the Configure heading, select Compatibility level.
  4. Choisissez la valeur de niveau de compatibilité souhaitée.Choose the compatibility level value that you want.
  5. Sélectionnez Enregistrer au bas de la page.Select Save at the bottom of the page.

Niveau de compatibilité Stream Analytics dans le portail Azure

Quand vous mettez à jour le niveau de compatibilité, le compilateur T valide le travail avec la syntaxe correspondant au niveau de compatibilité sélectionné.When you update the compatibility level, the T-compiler validates the job with the syntax that corresponds to the selected compatibility level.

Niveau de compatibilité 1.2Compatibility level 1.2

Les principales modifications introduites dans le niveau de compatibilité 1.2 sont les suivantes :The following major changes are introduced in compatibility level 1.2:

Protocole de messagerie AMQPAMQP messaging protocol

Niveau 1.2 : Azure Stream Analytics utilise le protocole de messagerie AMQP (Advanced Message Queueing Protocol) pour écrire dans les files d’attente et les rubriques Service Bus.1.2 level: Azure Stream Analytics uses Advanced Message Queueing Protocol (AMQP) messaging protocol to write to Service Bus Queues and Topics. Le protocole AMQP vous permet de développer des applications hybrides interplateforme à l’aide d’un protocole open standard.AMQP enables you to build cross-platform, hybrid applications using an open standard protocol.

Fonctions géospatialesGeospatial functions

Niveaux précédents : Azure Stream Analytics utilisait des calculs de type Géographie.Previous levels: Azure Stream Analytics used Geography calculations.

Niveau 1.2 : Azure Stream Analytics vous permet de calculer des coordonnées géographiques projetées de type Géométrique.1.2 level: Azure Stream Analytics allows you to compute Geometric projected geo coordinates. Il n’existe aucune modification au niveau de la signature des fonctions géospatiales.There's no change in the signature of the geospatial functions. Toutefois, leur sémantique a légèrement changé et améliore la précision des calculs.However, their semantics is slightly different, allowing more precise computation than before.

Azure Stream Analytics prend en charge l’indexation des données de référence géospatiales.Azure Stream Analytics supports geospatial reference data indexing. Les données de référence contenant des éléments géospatiaux peuvent être indexés afin d’accélérer les calculs.Reference Data containing geospatial elements can be indexed for a faster join computation.

Les fonctions géospatiales mises à jour offrent l’expressivité totale du format géospatial WKT (Well Known Text).The updated geospatial functions bring the full expressiveness of Well Known Text (WKT) geospatial format. Vous pouvez spécifier d’autres composants géospatiaux qui n’étaient précédemment pas pris en charge avec GeoJson.You can specify other geospatial components that weren't previously supported with GeoJson.

Pour plus d’informations, consultez le billet de blog Updates to geospatial features in Azure Stream Analytics – Cloud and IoT Edge (Mises à jour des fonctionnalités géospatiales dans Azure Stream Analytics - Cloud et IoT Edge).For more information, see Updates to geospatial features in Azure Stream Analytics – Cloud and IoT Edge.

Exécution de requêtes en parallèle pour les sources d’entrée avec plusieurs partitionsParallel query execution for input sources with multiple partitions

Niveaux précédents : les requêtes Azure Stream Analytics nécessitaient l’utilisation de la clause PARTITION BY pour paralléliser le traitement des requêtes dans l’ensemble des partitions de source d’entrée.Previous levels: Azure Stream Analytics queries required the use of PARTITION BY clause to parallelize query processing across input source partitions.

Niveau 1.2 : si la logique de requête peut être parallélisée sur toutes les partitions de source d’entrée, Azure Stream Analytics crée des instances de requête distinctes et exécute les calculs en parallèle.1.2 level: If query logic can be parallelized across input source partitions, Azure Stream Analytics creates separate query instances and runs computations in parallel.

Intégration de l’API en bloc en mode natif à la sortie CosmosDBNative Bulk API integration with CosmosDB output

Niveaux précédents : le comportement de l’opération upsert était insert or merge (insérer ou fusionner).Previous levels: The upsert behavior was insert or merge.

Niveau 1.2 : l’intégration de l’API en bloc en mode natif à la sortie CosmosDB optimise le débit et gère efficacement les requêtes de limitation.1.2 level: Native Bulk API integration with CosmosDB output maximizes throughput and efficiently handles throttling requests. Pour plus d’informations, consultez l’article Azure Stream Analytics output to Azure Cosmos DB (Sortie Azure Stream Analytics dans Azure Cosmos DB).For more information, see the Azure Stream Analytics output to Azure Cosmos DB page.

Le comportement de l’opération upsert est insert or replace (insérer ou remplacer).The upsert behavior is insert or replace.

Utilisation de DateTimeOffset lors de l’écriture dans une sortie SQLDateTimeOffset when writing to SQL output

Niveaux précédents : les types DateTimeOffset étaient ajustés au format temps universel coordonné (UTC).Previous levels: DateTimeOffset types were adjusted to UTC.

Niveau 1.2 : DateTimeOffset n’est plus ajusté.1.2 level: DateTimeOffset is no longer adjusted.

Long lors de l’écriture dans une sortie SQLLong when writing to SQL output

Niveaux précédents : Les valeurs ont été tronquées en fonction du type cible.Previous levels: Values were truncated based on the target type.

Niveau 1.2 : Les valeurs qui ne tiennent pas dans le type cible sont traitées en fonction de la stratégie d’erreur de sortie.1.2 level: Values that do not fit into the target type are handled according to the output error policy.

Sérialisation des enregistrements et des tableaux lors de l’écriture dans la sortie SQLRecord and array serialization when writing to SQL output

Niveaux précédents : Les enregistrements étaient écrits en tant que « Record » (Enregistrement) et les tableaux l’étaient en tant que « Array » (Tableau).Previous levels: Records were written as "Record" and arrays were written as "Array".

Niveau 1.2 : Les enregistrements et les tableaux sont sérialisés au format JSON.1.2 level: Records and arrays are serialized in JSON format.

Validation stricte des préfixes de fonctionStrict validation of prefix of functions

Niveaux précédents : il n’existait aucune validation stricte des préfixes de fonction.Previous levels: There was no strict validation of function prefixes.

Niveau 1.2 : Azure Stream Analytics applique une validation stricte des préfixes de fonction.1.2 level: Azure Stream Analytics has a strict validation of function prefixes. L’ajout d’un préfixe à une fonction intégrée entraîne une erreur.Adding a prefix to a built-in function causes an error. Par exemple, myprefix.ABS(…) n’est pas pris en charge.For example,myprefix.ABS(…) isn't supported.

L’ajout d’un préfixe à des agrégats intégrés engendre également une erreur.Adding a prefix to built-in aggregates also results in error. Par exemple, myprefix.SUM(…) n’est pas pris en charge.For example, myprefix.SUM(…) isn't supported.

L’utilisation du préfixe "system" pour des fonctions définies par l’utilisateur entraîne une erreur.Using the prefix "system" for any user-defined functions results in error.

Interdiction des types Array et Object en tant que propriétés de clé dans l’adaptateur de sortie Cosmos DBDisallow Array and Object as key properties in Cosmos DB output adapter

Niveaux précédents : les types Array et Object étaient pris en charge comme propriétés de clé.Previous levels: Array and Object types were supported as a key property.

Niveau 1.2 : les types Array et Object ne sont plus pris en charge comme propriétés de clé.1.2 level: Array and Object types are no longer supported as a key property.

Niveau de compatibilité 1.1Compatibility level 1.1

Voici les principales modifications introduites dans le niveau de compatibilité 1.1 :The following major changes are introduced in compatibility level 1.1:

Format XML de Service BusService Bus XML format

Niveau 1.0 : Azure Stream Analytics utilisait DataContractSerializer, c’est pourquoi le contenu des messages incluait des balises XML.1.0 level: Azure Stream Analytics used DataContractSerializer, so the message content included XML tags. Par exemple :For example:

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

Niveau 1.1 : le contenu du message renferme directement le flux sans aucune balise supplémentaire.1.1 level: The message content contains the stream directly with no additional tags. Par exemple : { "SensorId":"1", "Temperature":64}For example: { "SensorId":"1", "Temperature":64}

Conservation de la casse des noms de champPersisting case-sensitivity for field names

Niveau 1.0 : les noms de champs passaient en minuscules au moment du traitement par le moteur Azure Stream Analytics.1.0 level: Field names were changed to lower case when processed by the Azure Stream Analytics engine.

Niveau 1.1 : la casse des noms de champ est préservée lorsque ces derniers sont traités par le moteur Azure Stream Analytics.1.1 level: case-sensitivity is persisted for field names when they are processed by the Azure Stream Analytics engine.

Notes

La conservation de la casse n’est pas encore disponible pour les tâches Stream Analytics hébergés à l’aide de l’environnement Edge.Persisting case-sensitivity isn't yet available for Stream Analytic jobs hosted by using Edge environment. Par conséquent, tous les noms de champs sont convertis en minuscules si votre tâche est hébergée sur Edge.As a result, all field names are converted to lowercase if your job is hosted on Edge.

FloatNaNDeserializationDisabledFloatNaNDeserializationDisabled

Niveau 1.0 : la commande CREATE TABLE ne filtrait pas les événements avec une valeur NaN (Not-a-Number.1.0 level: CREATE TABLE command did not filter events with NaN (Not-a-Number. Par exemple, Infinity, -Infinity) dans une colonne de type FLOAT, car ils étaient en dehors des limites documentées pour ces numéros.For example, Infinity, -Infinity) in a FLOAT column type because they are out of the documented range for these numbers.

Niveau 1.1 : la commande CREATE TABLE vous permet de spécifier un schéma fort.1.1 level: CREATE TABLE allows you to specify a strong schema. Le moteur Stream Analytics vérifie que les données sont conformes à ce schéma.The Stream Analytics engine validates that the data conforms to this schema. Avec ce modèle, la commande peut filtrer des événements avec des valeurs NaN.With this model, the command can filter events with NaN values.

Désactiver la conversion automatique des chaînes datetime en type DateTime à l’entrée pour JSONDisable automatic conversion of datetime strings to DateTime type at ingress for JSON

Niveau 1.0 : L’analyseur JSON convertit automatiquement les valeurs de chaîne contenant des informations de date/heure/zone en type DATETIME à l’entrée, de sorte que la valeur perd immédiatement ses informations de mise en forme d’origine et de fuseau horaire.1.0 level: The JSON parser would automatically convert string values with date/time/zone information to DATETIME type at ingress so the value immediately loses its original formatting and timezone information. Dans la mesure où cette opération est effectuée à l’entrée, même si ce champ n’a pas été utilisé dans la requête, il est converti en DateTime UTC.Because this is done at ingress, even if that field was not used in the query, it is converted into UTC DateTime.

Niveau 1.1 : Il n’y a pas de conversion automatique des valeurs de chaîne contenant des informations de date/heure/zone en type DATETIME.1.1 level: There is no automatic conversion of string values with date/time/zone information to DATETIME type. Par conséquent, les informations de fuseau horaire et la mise en forme d’origine sont conservées.As a result, timezone information and original formatting are kept. Toutefois, si le champ NVARCHAR(MAX) est utilisé dans la requête dans le cadre d’une expression DATETIME (fonction DATEADD, par exemple), il est converti en type DATETIME pour effectuer le calcul et il perd sa forme d’origine.However, if the NVARCHAR(MAX) field is used in the query as part of a DATETIME expression (DATEADD function, for example), it's converted to DATETIME type to perform the computation and it loses its original form.

Étapes suivantesNext steps