8.4. CloudEvent のエクスポート
CloudEvents は、イベントデータを一般的な方法で記述するための仕様です。その目的は、サービス、プラットフォーム、およびシステム間で相互運用性を提供することです。Debezium を使用すると、MongoDB、MySQL、PostgreSQL、または SQL Server コネクターを設定し、CloudEvents 仕様に準拠する変更イベントレコードを出力できます。
CloudEvents 形式で変更イベントレコードを出力することはテクノロジープレビュー機能です。テクノロジープレビューの機能は、Red Hat の実稼働環境のサービスレベルアグリーメント (SLA) ではサポートされず、機能的に完全ではないことがあるため、Red Hat はテクノロジープレビュー機能を実稼働環境に実装することは推奨しません。テクノロジープレビューの機能は、最新の技術をいち早く提供して、開発段階で機能のテストやフィードバックの収集を可能にするために提供されます。サポート範囲の詳細は、「テクノロジプレビュー機能のサポート範囲」を参照してください。
CloudEvents 仕様は以下を定義します。
- 標準イベント属性のセット
- カスタム属性を定義するルール
- イベント形式のシリアライズされた表現(JSON など)へのマッピングルール
- Apache Kafka、HTTP、AMQP などのトランスポート層のプロトコルバインディング。
Debezium コネクターが CloudEvents 仕様に準拠する変更イベントレコードを出力するように設定するには、Debezium は Kafka Connect メッセージコンバーターで io.debezium.converters.CloudEventsConverter
あるを提供します。
現在、構造化マッピングモードのみがサポートされます。CloudEvents の変更イベントフレームは JSON にする必要があります。data
形式は JSON である必要があります。今後の Debezium リリースはバイナリーマッピングモードをサポートする予定です。
8.4.1. イベント形式の例 リンクのコピーリンクがクリップボードにコピーされました!
以下の例は、PostgreSQL コネクターによって出力される CloudEvents 変更イベントレコードを示しています。この例では、PostgreSQL コネクターは、JSON を CloudEvents 形式および形式として使用するように設定されてい data
ます。
- 1
- 変更イベントの内容に基づいて変更イベント用にコネクターが生成する一意の ID。
- 2
- イベントのソース。これは、コネクターの設定の
database.server.name
プロパティーによって指定されるデータベースの論理名です。 - 3
- CloudEvents 仕様のバージョン。
- 4
- 変更イベントを生成したコネクタータイプ。このフィールドの形式はです
io.debezium.CONNECTOR_TYPE.datachangeevent
。の値CONNECTOR_TYPE
はmongodb
、、mysql
postgresql
、またはですsqlserver
。 - 5
- ソースデータベースの変更時間。
- 6
- は、JSON である
data
属性のコンテンツタイプを記述します。 - 7
- 操作識別子。設定可能な値は、
r
read、c
create、u
update、またはd
delete です。 - 8
- Debezium 変更イベントから認識される
source
属性はすべて、属性名のiodebezium
接頭辞を使用して CloudEvents 拡張属性にマッピングされます。 - 9
- コネクターで有効にすると、Debezium 変更イベントから認識される各
transaction
属性は、属性名のiodebeziumtx
接頭辞を使用して CloudEvents 拡張属性にマッピングされます。 - 10
- 実際のデータ自体は変更されています。操作やコネクターによっては、データに、、
before
after
またはpatch
フィールドが含まれることがあります。