Migração de um registro de esquemas de terceiros para o registro de esquemas do AWS Glue - AWS União

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Migração de um registro de esquemas de terceiros para o registro de esquemas do AWS Glue

A migração de um registro de esquemas de terceiros para o registro de esquemas do AWS Glue tem uma dependência do registro de esquemas de terceiros existente e atual. Se houver registros em um tópico do Apache Kafka que tenham sido enviados usando um registro de esquemas de terceiros, os consumidores precisarão do registro de esquemas de terceiros para desserializar esses registros. O AWSKafkaAvroDeserializer fornece a capacidade de especificar uma classe secundária de desserialização que aponta para o desserializador de terceiros e é usada para desserializar esses registros.

Há dois critérios para desativação de um esquema de terceiros. Primeiro, a desativação pode ocorrer somente depois que os registros nos tópicos do Apache Kafka usando o registro de esquemas de terceiros não são mais exigidos por e para qualquer consumidor. Em segundo lugar, a desativação pode ocorrer com o vencimento dos tópicos do Apache Kafka, dependendo do período de retenção especificado para esses tópicos. Observe que, se você tiver tópicos com retenção infinita, ainda poderá migrar para o registro de esquemas do AWS Glue, mas não poderá desativar o registro de esquemas de terceiros. Como solução alternativa, você pode usar uma aplicação ou Mirror Maker 2 para ler o tópico atual e produzir para um novo tópico com o registro de esquemas do AWS Glue.

Migração de um registro de esquemas de terceiros para o registro de esquemas do AWS Glue:

  1. Crie um registro no registro de esquemas do AWS Glue ou use o registro padrão.

  2. Interrompa o consumidor. Modifique-o para incluir o registro de esquemas do AWS Glue como o principal desserializador e o registro de esquemas de terceiros como o secundário.

    • Defina as propriedades do consumidor. Neste exemplo, o secondary_deserializer é definido como um desserializador diferente. O comportamento é o seguinte: o consumidor recupera registros do Amazon MSK e primeiro tenta usar o AWSKafkaAvroDeserializer. Se não for possível ler o byte mágico que contém o ID do esquema Avro para o esquema do registro do esquemas do AWS Glue, o AWSKafkaAvroDeserializer tenta usar a classe do desserializador fornecida no secondary_deserializer. As propriedades específicas do desserializador secundário também precisam ser fornecidas nas propriedades do consumidor, como schema_registry_url_config e specific_avro_reader_config, como mostrado abaixo.

      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");
  3. Reinicie o consumidor.

  4. Interrompa o produtor e aponte o produtor para o registro de esquemas do AWS Glue.

    1. Defina as propriedades do produtor. Neste exemplo, o produtor usará as versões de esquema de registro padrão e registro automático.

      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");
  5. (Opcional) Mova manualmente esquemas e versões de esquema existentes do registro de esquemas de terceiros atual para o registro de esquemas do AWS Glue, seja para o registro padrão no registro de esquemas do AWS Glue ou para um registro não padrão específico no registro de esquemas do AWS Glue. Isso pode ser feito exportando esquemas dos registros de esquemas de terceiros no formato JSON e criando novos esquemas no registro de esquemas do AWS Glue usando o AWS Management Console ou a AWS CLI.

    Esta etapa pode ser importante se você precisar habilitar verificações de compatibilidade com versões de esquema anteriores para versões de esquema recém-criadas usando a AWS CLI e o AWS Management Console. Ou quando os produtores enviam mensagens com um novo esquema com registro automático de versões de esquema ativado.

  6. Inicie o produtor.