Uso del registro degli schemi
Schema Registry fornisce un repository condiviso di schemi che consente alle applicazioni di interagire in modo flessibile tra loro.
Le applicazioni create spesso hanno bisogno di un modo per condividere i metadati in tre dimensioni:
-
Formato dati
-
Schema
-
Semantica o significato dei dati
Di seguito sono riportati i valori forniti da Schema Registry e dalle applicazioni che vi si integrano.
-
Registro di sistema centralizzato: fornire uno schema riutilizzabile per evitare di collegare lo schema a ogni dato
-
Gestione delle versioni: definire la relazione tra le versioni dello schema in modo che consumatori e produttori possano evolvere a tassi diversi
-
Convalida dello schema: abilita la conversione generica del formato, l'instradamento generico e la qualità dei dati
Perché scegliere Schema Registry?
A causa della natura disaccoppiata di Kafka, produttori e consumatori non comunicano direttamente. Invece, il trasferimento di informazioni avviene attraverso l'argomento Kafka. Allo stesso tempo, il consumatore deve ancora conoscere il tipo di dati che il produttore sta inviando per deserializzarlo. Se il producer inizia a inviare dati non validi a Kafka o se il tipo di dati viene modificato, i consumer a valle iniziano a interrompersi. Ci deve essere un modo per avere un tipo di dati comune che è concordato.
È qui che entra in gioco Schema Registry. Schema Registry è un'applicazione che risiede al di fuori del cluster Kafka e gestisce la distribuzione degli schemi al producer e al consumer memorizzando una copia dello schema nella cache locale.
Casi d'uso
Schema Registry fornisce un set di API Rest (con interfacce Web) per rendere lo schema disponibile centralmente per le applicazioni client. I casi d'uso comuni sono i seguenti:
- Registrazione ed esecuzione di query su uno schema per un argomento Kafka
Quando Kafka è integrato nelle distribuzioni delle organizzazioni aziendali, in genere si dispone di molti argomenti Kafka diversi utilizzati da applicazioni e utenti diversi.
- Lettura/Deserializzazione e scrittura/Serializzazione dei dati da e per un argomento Kafka
Oltre a memorizzare i metadati dello schema, un altro caso d'uso chiave consiste nel memorizzare i metadati per il formato di lettura e scrittura dei dati. Schema Registry supporta questo caso d'uso fornendo funzionalità per memorizzare file JAR per serializzatori e deserializzatori e quindi mappare i server allo schema.
- Gestione del flusso di dati con instradamento basato su schema
Se si utilizza NiFi per spostare diversi tipi di eventi
syslog
nei sistemi a valle, sono previsti requisiti di spostamento dei dati in cui è necessario analizzare l'eventosyslog
per estrarre il tipo di evento e instradare l'evento a un determinato sistema a valle (ad esempio, diversi argomenti Kafka) in base al tipo di evento. -
L'evoluzione dinamica dello schema consente allo schema di evolversi in un periodo di tempo.
Qualsiasi aggiornamento nello schema crea una nuova revisione comunicata ai consumatori.
- L'applicazione/convalida dello schema da parte del consumatore può essere raggiunta senza problemi per la qualità dei dati.
Avvio del producer/consumatore Kafka mediante il client Java
Aggiunta del registro di schema Apache ai cluster ODH
È possibile aggiungere il registro degli schemi Apache ai cluster di Big Data Service utilizzando Ambari
Schema Registry non è installato per impostazione predefinita in un cluster Big Data Service. Schema Registry supporta due tipi di archivi per la memorizzazione dei metadati dello schema.
- Mysql: valore da impostare: mysql
- In memoria: valore da impostare: inmemory
Per impostare il tipo di memorizzazione appropriato, impostare il parametro Storage Type
nella sezione Schema-registry avanzato dall'interfaccia utente di Ambari.
Per impostare Mysql come tipo di memorizzazione, è necessario creare diverse tabelle prima di avviare il server. Questa operazione viene eseguita automaticamente quando il parametro Storage Type
è impostato su mysql.
Il parametro
MySql Passowrd
è obbligatorio quando si installa il servizio Schema Registry. Questa password viene utilizzata per accedere alle informazioni dello schema memorizzate nelle tabelle Mysql.Per i cluster Big Data Service 3.0.28 o versioni precedenti, è necessario reimpostare manualmente MySql Passowrd
dal nodo un0 eseguendo il comando:
sudo update_mysql_password registry <password>
Fornire questa password durante l'installazione del servizio Schema Registry.