8.3. Avro シリアル化


重要

Avro を使用したレコードキーおよび値のシリアライズ機能はテクノロジープレビュー機能です。テクノロジープレビューの機能は、Red Hat の実稼働環境のサービスレベルアグリーメント (SLA) ではサポートされず、機能的に完全ではないことがあるため、Red Hat はテクノロジープレビュー機能を実稼働環境に実装することは推奨しません。テクノロジープレビューの機能は、最新の技術をいち早く提供して、開発段階で機能のテストやフィードバックの収集を可能にするために提供されます。サポート範囲の詳細は、「テクノロジプレビュー機能のサポート範囲」を参照してください。

Debezium コネクターは Kafka Connect フレームワークで機能し、変更イベントレコードを生成してデータベースの各行レベルの変更をキャプチャーします。変更イベントレコードごとに、Debezium コネクターは以下を行います。

  1. 設定した変換を適用します。
  2. 設定された Kafka Connect コンバーターを使用して、レコードキーおよび値をバイナリー形式でシリアライズします。
  3. 正しい Kafka トピックにレコードを書き込みます。

各 Debezium コネクターインスタンスにコンバーターを指定できます。Kafka Connect では、レコードキーと値を JSON ドキュメントにシリアライズする JSON コンバーターが提供されます。デフォルトの動作では、JSON コンバーターにレコードのメッセージスキーマが含まれ、各レコードが非常に詳細になります。『 Getting Started with Debezium』には、ペイロードとスキーマの両方が含まれる場合にレコードが表示されます。JSON でレコードをシリアライズする必要がある場合、以下のコネクター設定プロパティーをに設定することを検討してください false

  • key.converter.schemas.enable
  • value.converter.schemas.enable

これらのプロパティーを設定して、各レコードから詳細なスキーマ情報を false 除外します。

Apache Avro を使用すると、レコードキーと値をシリアライズできます。Avro バイナリー形式は、コンパクトで効率的です。Avro スキーマにより、各レコードに正しい構造があることを確認することができます。Avro のスキーマ進化メカニズムにより、スキーマを進化できます。これは、変更したデータベーステーブル構造に一致するように各レコードのスキーマを動的に生成する Debezium コネクターに不可欠です。時間の経過とともに、同じ Kafka トピックに書き込まれたイベントレコードを変更する場合は、同じスキーマのバージョンが異なる可能性があります。Avro のシリアライズにより、イベントレコードコンシューマーの変更がレコードスキーマに適応することが容易になります。

Apache Avro のシリアライズを使用するには、Avro メッセージスキーマとそのバージョンを管理するスキーマレジストリーをデプロイする必要があります。このレジストリーの設定に関する詳細は、Red Hat Integration - Service Registry のドキュメントを参照してください。

8.3.1. Red Hat Integration - Service Registry について

Red Hat Integration: Service Registry は、Avro と連携するコンポーネントを複数提供します。

  • Debezium コネクター設定で指定できる Avro コンバーター。このコンバーターは、Kafka Connect スキーマを Avro スキーマにマッピングします。次にコンバーターは Avro スキーマを使用してレコードキーと値を Avro のコンパクトなバイナリー形式にシリアライズします。
  • 以下を追跡する API およびスキーマレジストリー

    • Kafka トピックで使用される Avro スキーマ
    • Avro コンバーターが生成された Avro スキーマを送信する場所

    Avro スキーマはこのレジストリーに保存されているため、各レコードには小さな スキーマ ID のみが含まれている必要があります。これにより、各レコードはさらに小さくなります。Kafka のような I/O バインドされたシステムでは、プロデューサーとコンシューマーの合計スループットがより高くなります。

  • Kafka プロデューサーおよびコンシューマーの Avro Serdes セシリアライザーおよびデシリアライザー)。変更イベントレコードを使用するために作成する Kafka コンシューマーアプリケーションは、Avro Serdes を使用して変更イベントレコードをデシリアライズできます。

Debezium で Service Registry を使用するには、Service Registry コンバーターとその依存関係を、Debezium コネクターの実行に使用する Kafka Connect コンテナーイメージに追加します。

注記

Service Registry プロジェクトは JSON コンバーターも提供します。このコンバーターは、あまり詳細なメッセージと人間が判読できる JSON の利点を組み合わせることができます。メッセージにはスキーマ情報自体は含まれませんが、スキーマ ID のみが含まれます。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.