Migrasi dari registri skema pihak ketiga ke AWS Glue Schema Registry - AWS Glue

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Migrasi dari registri skema pihak ketiga ke AWS Glue Schema Registry

Migrasi dari registri skema pihak ketiga ke Registri Skema AWS Glue yang memiliki dependensi pada registri skema pihak ketiga yang ada saat ini. Jika ada catatan dalam topik Apache Kafka yang dikirim menggunakan sebuah registri skema pihak ketiga, maka konsumen memerlukan registri skema pihak ketiga tersebut untuk melakukan deserialisasi pada catatan tersebut. AWSKafkaAvroDeserializer menyediakan kemampuan untuk menentukan kelas deserializer sekunder yang mengarahkan ke deserializer pihak ketiga dan digunakan untuk melakukan deserialisasi pada catatan-catatan tersebut.

Ada dua kriteria untuk mempensiunkan skema pihak ketiga. Pertama, pensiun dapat terjadi hanya setelah catatan dalam topik Apache Kafka yang menggunakan registri skema pihak ketiga yang tidak lagi diperlukan oleh dan untuk konsumen manapun. Kedua, pensiun dapat terjadi dengan habisnya usia dari topik Apache Kafka, tergantung pada periode retensi yang ditentukan untuk topik-topik tersebut. Perhatikan bahwa jika Anda memiliki topik yang memiliki retensi tak terbatas, maka Anda masih dapat bermigrasi ke Registri Skema AWS Glue tetapi Anda tidak akan dapat mempensiunkan registri skema pihak ketiga. Solusinya, Anda dapat menggunakan aplikasi atau Mirror Maker 2 untuk membaca dari topik saat ini dan menghasilkan topik baru dengan Registri Skema AWS Glue.

Untuk bermigrasi dari registri skema pihak ketiga ke Registri Skema AWS Glue:

  1. Buat registri di Registri Skema AWS Glue, atau gunakan registri default.

  2. Hentikan konsumennya. Modifikasi sehingga menyertakan Registri Skema AWS Glue sebagai deserializer utama, dan registri skema pihak ketiga sebagai yang sekunder.

    • Mengatur properti konsumen. Dalam contoh ini, secondary_deserializer diatur ke sebuah deserializer yang berbeda. Perilakunya adalah sebagai berikut: konsumen mengambil catatan dari Amazon MSK dan pertama kali mencoba untuk menggunakan AWSKafkaAvroDeserializer. Jika tidak dapat membaca byte ajaib yang berisi ID Skema Avro untuk skema dari Registri Skema AWS Glue, maka AWSKafkaAvroDeserializer akan mencoba untuk menggunakan kelas deserializer yang disediakan di secondary_deserializer. Properti spesifik untuk deserializer sekunder juga perlu disediakan dalam properti konsumen, seperti schema_registry_url_config dan specific_avro_reader_config, seperti yang ditunjukkan di bawah ini.

      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. Mulai ulang konsumen.

  4. Hentikan produsen dan arahkan produsen ke Registri Skema AWS Glue.

    1. Mengatur properti produsen. Dalam contoh ini, produsen akan menggunakan default-registry dan versi skema register otomatis.

      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. (Opsional) Secara manual, pindahkan skema yang ada dan versi skema dari registri skema pihak ketiga saat ini ke Registri Skema AWS Glue, baik untuk default-registry di Registri Skema AWS Glue atau registri non-default tertentu di Registri Skema AWS Glue. Hal ini dapat dilakukan dengan mengekspor skema dari registri skema pihak ketiga dalam format JSON dan menciptakan skema baru di Registri Skema AWS Glue dengan menggunakan AWS Management Console atau AWS CLI.

    Langkah ini mungkin penting jika Anda perlu mengaktifkan pemeriksaan kompatibilitas dengan versi skema sebelumnya untuk versi skema yang baru dibuat dengan menggunakan AWS CLI dan AWS Management Console, atau ketika produsen mengirim pesan dengan skema baru dengan pendaftaran otomatis versi skema yang sudah diaktifkan.

  6. Mulai produsen.