12.6.5. Debezium 送信トレイメッセージでのペイロードフォーマットとしての Avro の使用


送信トレイイベントルーター SMT は、任意のペイロードフォーマットをサポートします。送信トレイテーブルの ペイロード 列値が透過的に渡されます。JSON を使用する代わりに、Avro を使用することもできます。これは、メッセージフォーマットの管理や、送信トレイイベントスキーマの後方互換性を維持した進化の確保に役立ちます。

送信トレイメッセージペイロード用にソースアプリケーションがどのように Avro フォーマットのコンテンツを生成するかは、本ドキュメントの範囲外です。KafkaAvroSerializer クラスを使用して GenericRecord インスタンスをシリアライズすることが考えられます。Kafka メッセージの値が正確な Avro バイナリーデータとなるようにするには、以下の設定をコネクターに適用します。

transforms=outbox,...
transforms.outbox.type=io.debezium.transforms.outbox.EventRouter
value.converter=io.debezium.converters.ByteBufferConverter

デフォルトでは、ペイロード 列値(Avro データ)は、唯一のメッセージ値です。ByteBufferConverter を値コンバーターとして設定すると、ペイロード 列値をそのまま Kafka メッセージ値に伝播します。

ハートビート、トランザクションメタデータ、またはスキーマ変更イベントを出力するように Debezium コネクターを設定することができます (サポートはコネクターによって異なります)。これらのイベントは ByteBufferConverter でシリアライズできないため、コンバーターがこれらのイベントのシリアライズ方法を認識するように追加の設定を指定する必要があります。以下の設定は、スキーマなしで Apache Kafka JsonConverter を使用する方法を示しています。

transforms=outbox,...
transforms.outbox.type=io.debezium.transforms.outbox.EventRouter
value.converter=io.debezium.converters.ByteBufferConverter
value.converter.delegate.converter.type=org.apache.kafka.connect.json.JsonConverter
value.converter.delegate.converter.type.schemas.enable=false

delegate Converter 実装は、delegate.converter.type オプションで指定します。コンバーターで追加の設定オプションが必要な場合は、schema .enable=false を使用して上記のスキーマの無効化など、それらを指定することもできます。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.