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.
La migration d'un registre de schémas tiers vers le AWS Glue Le registre de schémas dépend du registre de schémas tiers actuel et existant. S'il existe des enregistrements dans une rubrique Apache Kafka qui ont été envoyés à l'aide d'un registre de schémas tiers, les applications consommateur ont besoin du registre de schémas tiers pour désérialiser ces enregistrements. Le AWSKafkaAvroDeserializer
permet de spécifier une classe de désérialiseur secondaire qui pointe vers le désérialiseur tiers et qui est utilisée pour désérialiser ces enregistrements.
Il existe deux critères pour le retrait d'un schéma tiers. Tout d'abord, le retrait ne peut avoir lieu qu'après que les enregistrements dans les rubriques Apache Kafka utilisant le registre de schéma tiers ne soient plus requis par et pour les applications consommateur. Deuxièmement, le retrait peut se produire suite au vieillissement des rubriques Apache Kafka, en fonction de la période de rétention spécifiée pour ces rubriques. Notez que si vous avez des sujets qui sont conservés à l'infini, vous pouvez toujours migrer vers le AWS Glue Registre de schémas, mais vous ne pourrez pas retirer le registre de schémas tiers. Pour contourner le problème, vous pouvez utiliser une application ou Mirror Maker 2 pour lire un extrait du sujet actuel et passer à un nouveau sujet avec le AWS Glue Registre des schémas.
Pour migrer d'un registre de schéma tiers vers le AWS Glue Registre des schémas :
Créez un registre dans le AWS Glue Schema Registry, ou utilisez le registre par défaut.
Arrêtez l'application consommateur. Modifiez-le pour inclure AWS Glue Schema Registry en tant que désérialiseur principal et le registre de schémas tiers en tant que secondaire.
Définissez les propriétés de l'application consommateur. Dans cet exemple, la valeur secondary_deserializer est définie sur un autre désérialiseur. Le comportement est le suivant : l'application consommateur récupère les enregistrements auprès d'Amazon MSK et essaie d'abord d'utiliser le
AWSKafkaAvroDeserializer
. S'il ne parvient pas à lire l'octet magique qui contient l'ID du schéma Avro pour le AWS Glue Schéma de registre de schéma,AWSKafkaAvroDeserializer
puis essaie d'utiliser la classe de désérialiseur fournie dans le secondary_deserializer. Les propriétés spécifiques au désérialiseur secondaire doivent également être fournies dans les propriétés de l'application consommateur, telles que schema_registry_url_config et specific_avro_reader_config, comme indiqué ci-dessous.consumerProps.setProperty(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName()); consumerProps.setProperty(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, AWSKafkaAvroDeserializer.class.getName()); consumerProps.setProperty(AWSSchemaRegistryConstants.AWS_REGION, KafkaClickstreamConsumer.gsrRegion); consumerProps.setProperty(AWSSchemaRegistryConstants.SECONDARY_DESERIALIZER, KafkaAvroDeserializer.class.getName()); consumerProps.setProperty(KafkaAvroDeserializerConfig.SCHEMA_REGISTRY_URL_CONFIG, "
URL for third-party schema registry
"); consumerProps.setProperty(KafkaAvroDeserializerConfig.SPECIFIC_AVRO_READER_CONFIG, "true");
Redémarrez l'application consommateur.
Arrêtez le producteur et orientez-le vers le AWS Glue Registre des schémas.
Définissez les propriétés du producteur. Dans cet exemple, le producteur utilisera le registre par défaut et enregistrera automatiquement les versions de schéma.
producerProps.setProperty(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); producerProps.setProperty(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, AWSKafkaAvroSerializer.class.getName()); producerProps.setProperty(AWSSchemaRegistryConstants.AWS_REGION, "us-east-2"); producerProps.setProperty(AWSSchemaRegistryConstants.AVRO_RECORD_TYPE, AvroRecordType.SPECIFIC_RECORD.getName()); producerProps.setProperty(AWSSchemaRegistryConstants.SCHEMA_AUTO_REGISTRATION_SETTING, "true");
(Facultatif) Déplacez manuellement les schémas et versions de schéma existants du registre de schémas tiers actuel vers le AWS Glue Registre de schémas, soit dans le registre par défaut dans AWS Glue Registre de schémas ou vers un registre spécifique autre que celui par défaut dans AWS Glue Registre des schémas. Cela peut être fait en exportant des schémas à partir des registres de schémas tiers au format JSON et en créant de nouveaux schémas dans AWS Glue Registre de schémas utilisant le AWS Management Console ou le AWS CLI.
Cette étape peut être importante si vous devez activer les contrôles de compatibilité avec les versions de schéma précédentes pour les versions de schéma nouvellement créées à l'aide du AWS CLI et AWS Management Console, ou lorsque les producteurs envoient des messages avec un nouveau schéma avec l'enregistrement automatique des versions de schéma activé.
Démarrez l'application producteur.