Partager via


Registre de schémas dans Azure Event Hubs

Le registre de schémas dans Azure Event Hubs présente de nombreux avantages. Le registre de schémas contribue à assurer la cohérence des données, à simplifier l’évolution des schémas, à améliorer l’interopérabilité et à réduire les efforts de développement dans les workflows de diffusion en continu d’événements et faiblement couplés. Les grandes organisations distribuées qui emploient un référentiel centralisé pour les schémas peuvent utiliser le registre de schémas pour parvenir à un traitement et une gouvernance des données hautement fiables pour une faible surcharge opérationnelle.

Les registres de schémas dans Azure Event Hubs remplissent de nombreuses fonctions dans les scénarios de diffusion en continu reposant sur un schéma, à savoir :

  • Mise à disposition d’un référentiel où plusieurs schémas peuvent être inscrits, gérés et développés
  • Gestion de l’évolution des schémas avec plusieurs règles de compatibilité
  • Validation des données pour toutes les données schématisées
  • Mise à disposition de bibliothèques côté client (sérialiseurs et désérialiseurs) pour les producteurs et les consommateurs
  • Amélioration de l’efficacité du débit réseau en passant l’ID de schéma plutôt que sa définition pour chaque charge utile

Les registres de schémas dans Azure Event Hubs sont pris en charge sur les niveaux Standard, Premium et Dedicated.

Composants d’un registre de schémas

Si le registre de schémas fait partie de l’espace de noms Event Hubs, il peut néanmoins aussi être utilisé avec d’autres répartiteurs de messages ou d’événements, y compris les services de messagerie Azure. Il se compose de plusieurs groupes de schémas, qui font office de regroupement logique de schémas et chacun de ces groupes peut être géré indépendamment des autres groupes de schémas.

Diagramme présentant les composants d’un registre de schémas dans Azure Event Hubs.

Schémas

Dans un système faiblement couplé, plusieurs applications communiquent, principalement à travers les données. Les schémas définissent la structure des données de manière déclarative. De ce fait, le contrat entre les applications de type producteur et consommateur est bien défini, ce qui garantit un traitement fiable à grande échelle.

Une définition de schéma comporte les éléments suivants :

  • Champs : éléments de données individuels tels que le nom, le titre d’ouvrage ou l’adresse.
  • Types de données : type de données stockables, tels que les types chaîne, date-heure ou tableau.
  • Structure : mode d’organisation des champs, comme les structures imbriquées ou les tableaux.

Les schémas définissent le contrat entre les producteurs et les consommateurs. Un schéma défini dans un registre de schémas Event Hubs permet de gérer le contrat en dehors des données d’événement, ce qui élimine la surcharge de la charge utile.

Formats de schéma

Les formats de schéma sont utilisés pour déterminer la façon dont un schéma est structuré et défini. Chaque format décrit les lignes directrices et la syntaxe spécifiques qui permettent de définir la structure des événements utilisés pour la diffusion en continu d’événements.

Schéma Avro

Apache Avro est un système de sérialisation de données très répandu qui utilise un format binaire compact et offre des capacités d’évolution de schéma.

Pour en savoir plus sur l’utilisation du format de schéma Avro avec un registre de schémas Event Hubs, veuillez consulter :

Schéma JSON

Un schéma JSON (JavaScript Object Notation) est un moyen standardisé de définir la structure et les types de données des événements. Un schéma JSON permet une utilisation sûre et fiable du format de données JSON dans la diffusion en continu des événements.

Pour en savoir plus sur l’utilisation du format de schéma JSON avec un registre de schémas Event Hubs, veuillez consulter Comment utiliser un registre de schémas avec Kafka et un schéma JSON.

Mémoires tampon de protocole

Les tampons de protocole (Protobuf) sont un mécanisme extensible indépendant du langage et de la plateforme permettant e sérialiser les données structurées. Il est utilisé pour définir efficacement les structures de données et les sérialiser dans un format binaire compact.

Groupes de schémas

Les groupes de schémas sont des groupes logiques de schémas similaires organisés en fonction de vos critères métier. Voici ce que contient un groupe de schémas :

  • Plusieurs définitions de schéma.
  • Plusieurs versions d’un schéma spécifique.
  • Des métadonnées concernant le type de schéma et la compatibilité pour tous les schémas du groupe.

Vous pouvez voir un groupe de schémas comme un sous-ensemble du registre de schémas, aligné sur une application ou une unité d’organisation particulière, avec un modèle d’autorisation distinct. Cette limite de sécurité supplémentaire contribue à s’assurer que les métadonnées et les secrets industriels ne sont pas divulgués dans le modèle de services partagé. Cela permet également aux propriétaires d’applications de gérer les schémas indépendamment des autres applications qui partagent le même espace de noms.

Évolution du schéma

Les schémas doivent évoluer en fonction des besoins de l’entreprise des producteurs et des consommateurs. Le registre de schémas prend en charge l’évolution de schéma en introduisant des modes de compatibilité au niveau du groupe de schémas. Lorsque vous créez un groupe de schémas, vous pouvez spécifier le mode de compatibilité des schémas que vous incluez dans ce groupe de schémas. Lorsque vous mettez à jour un schéma, la modification doit se conformer au mode de compatibilité affecté de sorte qu’une nouvelle version du schéma puisse être créée.

L’évolution de schéma est prise en charge pour le format de schéma Avro uniquement.

Le registre de schémas est pris en charge dans les modes de compatibilité suivants.

Compatibilité descendante

Le mode de compatibilité descendante permet au code consommateur d’utiliser une nouvelle version du schéma et de traiter les messages avec une ancienne version du schéma. Le mode de compatibilité descendante permet d’effectuer les modifications suivantes sur un schéma :

  • Supprimer des champs
  • Ajouter des champs facultatifs

Compatibilité ascendante

La compatibilité ascendante permet au code consommateur d’utiliser une ancienne version du schéma et de lire les messages avec le nouveau schéma. Le mode de compatibilité ascendante permet d’effectuer les modifications suivantes sur un schéma :

  • Ajouter des champs
  • Supprimer les champs facultatifs

Aucune compatibilité

Lorsque le mode de compatibilité None est utilisé, le registre de schémas n’effectue aucune vérification de compatibilité lorsque vous mettez à jour des schémas.

Kits de développement logiciel (SDK) client

Vous pouvez utiliser l’une des bibliothèques ci-dessous pour inclure un sérialiseur Avro. Vous pouvez utiliser des sérialiseurs Avro pour sérialiser et désérialiser des charges utiles qui contiennent des identificateurs de schéma pour le registre de schémas et les données encodées Avro :

Langage de programmation Kit SDK Exemples
.NET Microsoft.Azure.Data.SchemaRegistry.ApacheAvro Exemples .NET
Java azure-data-schemaregistry-avro Exemples relatifs à Java
Python azure-schemaregistry-avroserializer Exemples Python
JavaScript @azure/schema-registry-avro NodeJS samples

Par ailleurs, les bibliothèques ci-dessous sont également disponibles en fonction de vos charges de travail.

Limites

Pour connaître les limites (comme le nombre de schémas que vous pouvez utiliser dans un espace de noms) d’Event Hubs, consultez Quotas et limites d’Event Hubs.

Contrôle d’accès en fonction du rôle Azure

Pour accéder à un registre de schémas par programme, procédez comme suit :

  1. Inscrivez votre application dans Microsoft Entra ID.
  2. Ajoutez le principal de sécurité de l’application à l’un des rôles du contrôle d’accès en fonction du rôle Azure (RBAC) suivants au niveau de l’espace de noms.
Rôle Description
Propriétaire Lecture, écriture et suppression de groupes de registres de schémas et de schémas
Contributeur Lecture, écriture et suppression de groupes de registres de schémas et de schémas
Lecteur du registre de schémas Lecture et listage de groupes de registres de schémas et de schémas
Contributeur du registre de schémas Lecture, écriture et suppression de groupes de registres de schémas et de schémas

Pour savoir comment créer et inscrire une application à l’aide du portail Azure, consultez Inscrire une application avec Microsoft Entra ID. Vous avez besoin de l’ID client (ID d’application), de l’ID de locataire et du secret à utiliser dans le code.