Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Fonctionnement du registre des schémas
Cette section décrit le fonctionnement des processus de sérialisation et de désérialisation dans le registre des schémas.
Enregistrer un schéma : si le schéma n'existe pas encore dans le registre, le schéma peut être enregistré avec un nom de schéma égal au nom de la destination (par exemple, test_topic, test_stream, prod_firehose) ou le producteur peut fournir un nom personnalisé pour le schéma. Les producteurs peuvent également ajouter des paires clé-valeur au schéma sous forme de métadonnées, telles que source : MSK_Kafka_Topic_A, ou appliquer des balises aux schémas lors de la création du schéma. AWS Une fois qu'un schéma est enregistré, le registre de schémas renvoie l'ID de version de schéma au sérialiseur. Si le schéma existe, mais que le sérialiseur utilise une nouvelle version qui n'existe pas, le registre de schémas vérifie que le schéma fait référence à une règle de compatibilité pour s'assurer que la nouvelle version est compatible avant de l'enregistrer en tant que nouvelle version.
Il existe deux méthodes d'enregistrement d'un schéma : l'enregistrement manuel et l'enregistrement automatique. Vous pouvez enregistrer un schéma manuellement via la AWS Glue console ouCLI/SDK.
Lorsque l'enregistrement automatique est activé dans les paramètres du sérialiseur, l'enregistrement automatique du schéma est effectué. Si la valeur
REGISTRY_NAME
n'est pas fournie dans les configurations du producteur, l'enregistrement automatique enregistrera alors la nouvelle version du schéma sous le registre par défaut (default-registry). Voir Installation de SerDe bibliothèques pour plus d'informations sur la spécification de la propriété d'enregistrement automatique.Le sérialiseur valide les enregistrements de données par rapport au schéma : lorsque l'application produisant des données a enregistré son schéma, le sérialiseur du registre de schémas valide l'enregistrement produit par l'application structurée avec les champs et les types de données correspondant à un schéma enregistré. Si le schéma de l'enregistrement ne correspond pas à un schéma enregistré, le sérialiseur renvoie une exception et l'application ne parvient pas à livrer l'enregistrement à la destination.
S'il n'existe aucun schéma et si le nom du schéma n'est pas fourni dans les configurations du producteur, le schéma est créé avec le même nom que le nom du sujet (si Apache Kafka ou AmazonMSK) ou le nom du flux (si Kinesis Data Streams).
Chaque enregistrement a une définition de schéma et des données. La définition du schéma est interrogée par rapport aux schémas et versions existants dans le registre de schémas.
Par défaut, les producteurs mettent en cache les définitions des schémas et les versions IDs des schémas enregistrés. Si la définition de version de schéma d'un enregistrement ne correspond pas à ce qui est disponible dans le cache, le producteur tentera de valider le schéma avec le registre de schémas. Si la version du schéma est valide, son ID de version et sa définition seront alors mis en cache localement sur le producteur.
Vous pouvez ajuster la période de mise en cache par défaut (24 heures) dans les propriétés facultatives du producteur à l'étape 3 de Installation de SerDe bibliothèques.
Sérialisation et livraison des enregistrements : si l'enregistrement est conforme au schéma, le sérialiseur décore chaque enregistrement avec l'ID de version du schéma, sérialise l'enregistrement en fonction du format de données sélectionné (AVRO,JSON, Protobuf ou d'autres formats à venir), compresse l'enregistrement (configuration optionnelle du producteur) et le livre à destination.
Les applications consommateur désérialisent les données : les applications consommateur qui lisent ces données utilisent la bibliothèque du désérialiseur du registre de schémas qui analyse l'ID de version du schéma à partir de la charge utile de l'enregistrement.
Le désérialiseur peut demander le schéma à partir du registre de schémas : si c'est la première fois que le désérialiseur a constaté des enregistrements avec un ID de version de schéma particulier, à l'aide de l'ID de version de schéma, il demandera le schéma à partir du registre de schémas et mettra en cache le schéma localement sur l'application consommateur. Si le registre de schémas ne peut pas désérialiser l'enregistrement, l'application consommateur peut journaliser les données de l'enregistrement et continuer, mais aussi arrêter l'application.
Le désérialiseur utilise le schéma pour désérialiser l'enregistrement : lorsque le désérialiseur récupère l'ID de version de schéma auprès du registre de schémas, le désérialiseur décompresse l'enregistrement (si l'enregistrement envoyé par le producteur est compressé) et utilise le schéma pour désérialiser l'enregistrement. L'application traite à présent l'enregistrement.
Note
Chiffrement : vos clients communiquent avec le Schema Registry par le biais d'APIappels qui cryptent les données en transit à l'aide du TLS chiffrement. HTTPS Les schémas stockés dans le registre des schémas sont toujours chiffrés au repos à l'aide d'une clé gérée par le service AWS Key Management Service ()AWS KMS.
Note
Autorisation utilisateur : le registre des schémas prend en charge les politiques basées sur l'identitéIAM.