Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Registro schemi in Hub eventi di Azure offre molti vantaggi. Registro schemi consente di mantenere la coerenza dei dati, semplificare l'evoluzione dello schema, migliorare l'interoperabilità e ridurre le attività di sviluppo nei flussi di lavoro di streaming di eventi e ad accoppiamento libero. Le organizzazioni distribuite di grandi dimensioni che usano un repository centralizzato per gli schemi possono usare il Registro schemi per ottenere un'elaborazione e una governance dei dati altamente affidabili con un sovraccarico operativo ridotto.
I registri schemi in Hub eventi di Azure soddisfano molti ruoli negli scenari di streaming di eventi basati sullo schema:
- Fornire un repository in cui è possibile registrare, gestire ed evolvere più schemi
- Gestire l'evoluzione dello schema con più regole di compatibilità
- Eseguire la convalida dei dati per tutti i dati schematizzati
- Fornire librerie lato client (serializzatori e deserializzatori) per produttori e consumatori
- Migliorare l'efficienza del throughput di rete passando l'ID dello schema anziché la definizione dello schema per ogni payload.
I registri schemi in Hub eventi di Azure sono supportati nei livelli Standard, Premium e Dedicato.
Componenti del registro degli schemi
Il registro degli schemi è parte dello spazio dei nomi degli Event Hubs, ma può essere utilizzato anche con altri broker di messaggi o eventi, inclusi i servizi di messaggistica di Azure. Include più gruppi di schemi, che fungono da raggruppamento logico di schemi e possono essere gestiti indipendentemente da altri gruppi di schemi.
Schemi
In qualsiasi sistema ad accoppiamento libero, più applicazioni comunicano, principalmente tramite i dati. Gli schemi definiscono la struttura dei dati in modo dichiarativo. Di conseguenza, il protocollo di comunicazione tra le applicazioni producer e consumer è ben definito, garantendo un'elaborazione affidabile su larga scala.
Una definizione di schema include:
- Campi: singoli elementi di dati, ad esempio nome, titolo libro o indirizzo.
- Tipi di dati: tipo di dati che possono essere archiviati, ad esempio stringa, data/ora o matrice.
- Struttura: modalità di organizzazione dei campi, ad esempio strutture o matrici annidate.
Gli schemi definiscono il contratto tra producer e consumer. Uno schema definito in un registro dello schema di Hub eventi consente di gestire il contratto al di fuori dei dati dell'evento, eliminando così il sovraccarico del payload.
Formati dello schema
I formati di schema vengono usati per determinare il modo in cui uno schema è strutturato e definito. Ogni formato descrive linee guida e sintassi specifiche per definire la struttura degli eventi usati per lo streaming di eventi.
Schema Avro
Apache Avro è un sistema di serializzazione dei dati diffuso che usa un formato binario compatto e offre funzionalità di evoluzione dello schema.
Per ulteriori informazioni sull'uso del formato dello schema Avro con un registro degli schemi di Event Hubs, vedere:
- Come usare il Registro schemi con Kafka e Avro
- Come usare il Registro schemi con Hub eventi, .NET, AMQP (SDK) e Avro
Schema JSON
Uno schema JSON (JavaScript Object Notation) è un modo standardizzato per definire la struttura e i tipi di dati degli eventi. Uno schema JSON consente l'uso sicuro e affidabile del formato di dati JSON nel flusso di eventi.
Per ulteriori informazioni sull'uso del formato dello schema JSON con un registro degli schemi di Event Hubs, vedere Come usare un registro schemi con Kafka e JSON schema.
Buffer di protocollo
Protocol Buffers (Protobuf) è un meccanismo indipendente dal linguaggio, indipendente dalla piattaforma ed estendibile per la serializzazione di dati strutturati. Viene usato per definire in modo efficiente le strutture di dati e serializzarle in un formato binario compatto.
Gruppi di schemi
I gruppi di schemi sono gruppi logici di schemi simili organizzati in base ai criteri aziendali. Un gruppo di schemi contiene:
- Più definizioni di schema.
- Più versioni di uno schema specifico.
- Metadati relativi al tipo di schema e alla compatibilità per tutti gli schemi nel gruppo.
È possibile considerare un gruppo di schemi come un subset del Registro di sistema dello schema allineato a una particolare applicazione o a un'unità organizzativa, con un modello di autorizzazione separato. Questo limite di sicurezza aggiuntivo consente di garantire che i metadati e i segreti commerciali non vengano persi nel modello di servizi condivisi. Consente inoltre ai proprietari di applicazioni di gestire gli schemi indipendentemente da altre applicazioni che condividono lo stesso spazio dei nomi.
Evoluzione dello schema
Gli schemi devono evolversi con le esigenze aziendali dei produttori e dei consumatori. Il Registro schemi supporta l'evoluzione dello schema introducendo le modalità di compatibilità a livello di gruppo dello schema. Quando si crea un gruppo di schemi, è possibile specificare la modalità di compatibilità degli schemi inclusi in tale gruppo di schemi. Quando si aggiorna uno schema, la modifica deve essere conforme alla modalità di compatibilità assegnata in modo che possa creare una nuova versione dello schema.
L'evoluzione dello schema è supportata solo per il formato schema Avro.
Il Registro schemi è supportato nelle modalità di compatibilità seguenti.
Compatibilità con le versioni precedenti
La modalità di compatibilità con le versioni precedenti consente al codice consumer di usare una nuova versione di uno schema ed elaborare i messaggi con una versione precedente dello schema. La modalità di compatibilità con le versioni precedenti consente di apportare le modifiche seguenti in uno schema:
- Eliminare i campi
- Aggiungere campi facoltativi
Compatibilità con le versioni successive
La compatibilità diretta consente al codice consumer di usare una versione precedente dello schema e leggere i messaggi con il nuovo schema. La modalità di compatibilità futura consente di apportare le modifiche seguenti in uno schema:
- Aggiungi campi
- Eliminare i campi facoltativi
Nessuna compatibilità
Quando si usa la None
modalità di compatibilità, Registro schemi non esegue controlli di compatibilità quando si aggiornano gli schemi.
SDK client
È possibile usare una delle librerie seguenti per includere un serializzatore Avro. È possibile usare serializzatori Avro per serializzare e deserializzare i payload che contengono identificatori dello schema per il Registro di sistema dello schema e i dati con codifica Avro:
Linguaggio di programmazione | SDK | Campioni |
---|---|---|
.RETE | Microsoft.Azure.Data.SchemaRegistry.ApacheAvro | Esempi di .NET |
Giava | azure-data-schemaregistry-avro | Esempi di Java |
Pitone | azure-schemaregistry-avroserializer | Esempi per Python |
JavaScript | @azure/schema-registry-avro | esempi diNode.js |
Inoltre, le librerie seguenti sono disponibili anche in base ai carichi di lavoro.
- Apache Kafka: eseguire serializzatori e deserializzatori Avro integrati con Kafka supportati dal Schema Registry. Il serializzatore del client Java per il registro schemi di Apache Kafka può essere utilizzato in qualsiasi scenario legato ad Apache Kafka e con qualsiasi distribuzione o servizio cloud basato su Apache Kafka.
- Interfaccia della riga di comando di Azure: per un esempio di aggiunta di uno schema a un gruppo di schemi tramite l'interfaccia della riga di comando di Azure, vedere Aggiunta di uno schema a un gruppo di schemi tramite l'interfaccia della riga di comando di Azure.
- PowerShell: per un esempio di aggiunta di uno schema a un gruppo di schemi tramite PowerShell, vedere Aggiunta di uno schema a un gruppo di schemi tramite PowerShell.
Limiti
Per i limiti (come il numero di schemi utilizzabili in uno spazio dei nomi) di Event Hubs, vedere Quote e limiti di Event Hubs.
Controllo dell'accesso basato sui ruoli di Azure
Per accedere a un registro schemi a livello di programmazione, seguire questa procedura:
- Registrare l'applicazione in Microsoft Entra ID.
- Aggiungere l'entità di sicurezza dell'applicazione a uno dei ruoli di Controllo degli accessi in base al ruolo di Azure seguenti a livello di spazio dei nomi.
Ruolo | Descrizione |
---|---|
Proprietario | Leggere, scrivere ed eliminare i gruppi e gli schemi del registro degli schemi |
Collaboratore | Leggere, scrivere ed eliminare i gruppi e gli schemi del registro degli schemi |
Lettore del Registro schemi | Leggere ed elencare i gruppi e gli schemi del registro degli schemi |
Collaboratore del Registro degli Schemi | Leggere, scrivere ed eliminare i gruppi e gli schemi del registro degli schemi |
Per informazioni su come creare e registrare un'applicazione usando il portale di Azure, vedere Registrare un'applicazione con Microsoft Entra ID. Sono necessari l'ID client (ID applicazione), l'ID tenant e il segreto da usare nel codice.
Contenuto correlato
- Per informazioni su come creare un registro schemi usando il portale di Azure, vedere Creare un registro dello schema di Hub eventi usando il portale di Azure.
- Consulta i seguenti esempi dalla libreria client Avro di Schema Registry: