Registro schemi in Hub eventi di Azure
Il Registro schemi è fondamentale nei flussi di lavoro di streaming di eventi e ad accoppiamento libero per mantenere la coerenza dei dati, semplificare l'evoluzione dello schema, migliorare l'interoperabilità e ridurre le attività di sviluppo. Garantisce un'elaborazione e una governance dei dati altamente affidabili con un sovraccarico operativo ridotto nelle organizzazioni distribuite di grandi dimensioni con un repository centralizzato per gli schemi.
Registro schemi in Hub eventi di Azure soddisfa più ruoli negli scenari di streaming di eventi basati sullo schema-
- Fornisce un repository in cui è possibile registrare, gestire ed evolvere più schemi.
- Evoluzione dello schema gestito con più regole di compatibilità.
- Esegue la convalida dei dati per tutti i dati schematizzati.
- Fornisce librerie lato client (serializzatori e deserializzatori) per producer e consumer.
- Migliora l'efficienza della velocità effettiva di rete passando l'ID schema anziché la definizione dello schema per ogni payload.
Nota
Il Registro schemi è supportato nei livelli Standard, Premium e Dedicato.
Componenti del Registro schemi
Il Registro schemi si trova nel contesto dello spazio dei nomi di Hub eventi, ma può essere usato con tutto il servizio di messaggistica di Azure o con un altro broker di messaggi o eventi. 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, esistono più applicazioni che comunicano tra loro, principalmente tramite i dati. Gli schemi fungono da modo dichiarativo per definire la struttura dei dati in modo che il contratto tra questi producer e le applicazioni consumer sia ben definito, garantendo un'elaborazione affidabile su larga scala.
Una definizione di schema include :
- Campi: nome dei singoli elementi dati, ovvero nome/cognome, titolo della rubrica, indirizzo.
- Tipi di dati: tipo di dati che possono essere archiviati in ogni campo, ad esempio stringa, data/ora, matrice.
- Struttura: organizzazione dei diversi campi, ovvero strutture annidate o matrici.
Gli schemi definiscono il contratto tra producer e consumer. Uno schema definito in un registro schemi di Hub eventi consente di gestire il contratto al di fuori dei dati dell'evento, rimuovendo 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, con ogni formato che delinea linee guida e sintassi specifiche per definire la struttura degli eventi che verranno usati per i flussi di eventi.
Schema Avro
Avro è un sistema di serializzazione dei dati diffuso che usa un formato binario compatto e offre funzionalità di evoluzione dello schema.
Per altre informazioni sull'uso del formato dello schema Avro con il Registro schemi di Hub eventi, vedere:
- Come usare il Registro schemi con Kafka e Avro
- Come usare il Registro schemi con .NET SDK (AMQP) di Hub eventi e Avro.
Schema JSON
Lo schema JSON è un modo standardizzato per definire la struttura e i tipi di dati degli eventi. Lo schema JSON consente l'uso sicuro e affidabile del formato di dati JSON nel flusso di eventi.
Per altre informazioni sull'uso del formato dello schema JSON con il Registro schemi di Hub eventi, vedere:
Protobuf
I buffer di protocollo sono 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 in base ai criteri aziendali. Un gruppo di schemi contiene
- definizione di più schemi,
- più versioni di uno schema specifico e
- metadati relativi al tipo di schema e alla compatibilità per tutti gli schemi nel gruppo.
Un gruppo di schemi può essere considerato come un subset del Registro di sistema dello schema, allineato a una particolare applicazione o unità organizzativa, con un modello di autorizzazione separato. Questo limite di sicurezza aggiuntivo garantisce che nel modello di servizi condivisi, metadati e segreti commerciali non vengano persi. Consente inoltre ai proprietari di applicazioni di gestire gli schemi indipendentemente dalle altre applicazioni che condividono lo stesso spazio dei nomi.
Evoluzione dello schema
Gli schemi devono evolversi con il requisito aziendale dei producer e dei consumer. Registro schemi di Azure supporta l'evoluzione dello schema introducendo le modalità di compatibilità a livello di gruppo di schemi. 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 e quindi crea solo una nuova versione dello schema.
Nota
L'evoluzione dello schema è supportata solo per il formato dello schema Avro.
Registro schemi di Azure per Hub eventi supporta le 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 dello schema, ma può elaborare i messaggi con la versione precedente dello schema. Quando si usa la modalità di compatibilità con le versioni precedenti in un gruppo di schemi, consente di apportare le modifiche seguenti in uno schema.
- Eliminare campi.
- Aggiungere campi facoltativi.
Compatibilità con le versioni successive
La compatibilità con trasferimento consente al codice consumer di usare una versione precedente dello schema, ma può leggere i messaggi con il nuovo schema. La modalità di compatibilità di trasferimento consente di apportare le modifiche seguenti in uno schema.
- Aggiungi campi
- Eliminare i campi facoltativi
Nessuna compatibilità
Quando si usa la modalità di compatibilità None
, il Registro schemi non esegue alcun controllo di compatibilità quando si aggiornano gli schemi.
SDK client
È possibile usare una delle librerie seguenti che includono un serializzatore Avro, che è possibile usare per serializzare e deserializzare i payload che contengono gli identificatori dello schema del Registro schemi e i dati con codifica Avro.
- .NET - Microsoft.Azure.Data.SchemaRegistry.ApacheAvro
- Java - azure-data-schemaregistry-avro
- Python - azure-schemaregistry-avroserializer
- JavaScript - @azure/schema-registry-avro
- Apache Kafka - Eseguire serializzatori e deserializzatori Apache Avro integrati in Kafka supportati dal Registro schemi di Azure. Il serializzatore client Apache Kafka del client Java per il Registro schemi di Azure può essere usato in qualsiasi scenario di Apache Kafka e con qualsiasi servizio di distribuzione o servizio cloud basato su Apache Kafka®.
- Interfaccia della riga di comando (CLI) di Azure: per un esempio di aggiunta di uno schema a un gruppo di schemi tramite l'interfaccia della riga di comando, vedere Aggiunta di uno schema a un gruppo di schemi tramite l'interfaccia della riga di comando.
- 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 (ad esempio: numero di gruppi di schemi in uno spazio dei nomi) di Hub eventi, vedere Quote e limiti di Hub eventi.
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 controllo degli accessi in base al ruolo di Azure seguenti a livello di spazio dei nomi .
Ruolo | Descrizione |
---|---|
Proprietario | Lettura, scrittura ed eliminazione di gruppi e schemi del Registro schemi. |
Collaboratore | Lettura, scrittura ed eliminazione di gruppi e schemi del Registro schemi. |
Lettore del Registro schemi | Lettura ed elenco di gruppi e schemi del Registro schemi. |
Collaboratore del Registro schemi | Lettura, scrittura ed eliminazione di gruppi e schemi del Registro schemi. |
Per istruzioni sulla creazione di una registrazione di un'applicazione con il portale di Azure, vedere Registrare un'app con Microsoft Entra ID. Prendere nota dell'ID client (ID applicazione), dell'ID tenant e del segreto da usare nel codice.
Passaggi successivi
- Per informazioni su come creare un registro schemi usando il portale di Azure, vedere Creare un registro schemi di Hub eventi usando il portale di Azure.
- Vedere gli esempi seguenti della libreria client Avro del Registro schemi.