Utiliser le registre de schémas
Schema Registry fournit un référentiel partagé de schémas qui permet aux applications d'interagir les unes avec les autres de manière flexible.
Les applications créées ont souvent besoin d'un moyen de partager les métadonnées entre trois dimensions :
-
Format de données
-
Schéma
-
Sémantique ou signification des données
La valeur fournie par Schema Registry et les applications qui s'y intègrent sont les suivantes :
-
Registre centralisé : fournir un schéma réutilisable pour éviter d'attacher un schéma à chaque élément de données
-
Gestion des versions : définir la relation entre les versions de schéma afin que les consommateurs et les émetteurs puissent évoluer à des taux différents
-
Validation de schéma : Activer la conversion de format générique, le routage générique et la qualité des données
Pourquoi utiliser Schema Registry ?
En raison de la nature découplée de Kafka, les producteurs et les consommateurs ne communiquent pas directement. Au lieu de cela, le transfert d'informations se fait via la rubrique Kafka. Dans le même temps, le consommateur doit toujours connaître le type de données que le producteur envoie pour les désérialiser. Si le fournisseur commence à envoyer des données incorrectes à Kafka ou si le type de données est modifié, les consommateurs en aval commencent à se casser. Il doit exister un moyen d'avoir un type de données commun convenu.
C'est là que le registre de schémas intervient. Schema Registry est une application qui réside en dehors du cluster Kafka et gère la distribution des schémas au producteur et au consommateur en stockant une copie du schéma dans son cache local.
Cas d'emploi
Schema Registry fournit un ensemble d'API Rest (avec des interfaces Web) pour rendre le schéma disponible de manière centralisée pour les applications client. Les cas d'emploi courants sont les suivants :
-
Enregistrement et interrogation d'un schéma pour une rubrique Kafka
Lorsque Kafka est intégré aux déploiements d'entreprise, vous disposez généralement de nombreux sujets Kafka différents utilisés par différentes applications et utilisateurs.
-
Lecture/désérialisation et écriture/sérialisation de données depuis et vers un sujet Kafka
Outre le stockage des métadonnées de schéma, un autre cas d'emploi clé consiste à stocker des métadonnées pour le format de lecture et d'écriture des données. Schema Registry prend en charge ce cas d'utilisation en fournissant des fonctionnalités permettant de stocker des fichiers JAR pour les sérialiseurs et les désérialiseurs, puis de mettre en correspondance les séries avec le schéma.
-
Gestion des flux de données avec routage basé sur un schéma
Si vous utilisez NiFi pour déplacer différents types d'événement
syslog
vers des systèmes en aval, vous devez analyser l'événementsyslog
pour extraire le type d'événement et acheminer l'événement vers un certain système en aval (différentes rubriques Kafka, par exemple) en fonction du type d'événement. -
L'évolution dynamique du schéma permet à Schema d'évoluer sur une période donnée.
Toute mise à jour dans le schéma crée une nouvelle révision qui est communiquée aux destinataires.
- L'application/validation du schéma côté consommateur peut être réalisée en toute transparence pour la qualité des données.
Démarrer le fournisseur/client Kafka à l'aide du client Java
Ajout du registre de schémas Apache aux clusters ODH
Vous pouvez ajouter le registre de schémas Apache aux clusters Big Data Service à l'aide d'Ambari
Schema Registry n'est pas installé par défaut sur un cluster Big Data Service. Le registre de schémas prend en charge deux types de stockage pour le stockage des métadonnées de schéma.
- Mysql : valeur à définir : mysql
- En mémoire : valeur à définir : inmemory
Pour définir le type de stockage approprié, définissez le paramètre Storage Type
sous la section Schema-registry avancée de l'interface utilisateur Ambari.
Pour définir Mysql en tant que type de stockage, plusieurs tables doivent être créées avant de démarrer le serveur. Cette opération est effectuée automatiquement lorsque le paramètre Storage Type
est défini sur mysql.
Le paramètre
MySql Passowrd
est obligatoire lors de l'installation du service Schema Registry. Ce mot de passe est utilisé pour accéder aux informations de schéma stockées dans les tables Mysql.Pour les clusters Big Data Service 3.0.28 ou versions antérieures, MySql Passowrd
doit être réinitialisé manuellement à partir du noeud un0 en exécutant la commande suivante :
sudo update_mysql_password registry <password>
Indiquez ce mot de passe lors de l'installation du service Schema Registry.