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 ます。

{
  "id" : "name:test_server;lsn:29274832;txId:565",   1
  "source" : "/debezium/postgresql/test_server",     2
  "specversion" : "1.0",                             3
  "type" : "io.debezium.postgresql.datachangeevent", 4
  "time" : "2020-01-13T13:55:39.738Z",               5
  "datacontenttype" : "application/json",            6
  "iodebeziumop" : "r",                              7
  "iodebeziumversion" : "1.1.2.Final",        8
  "iodebeziumconnector" : "postgresql",
  "iodebeziumname" : "test_server",
  "iodebeziumtsms" : "1578923739738",
  "iodebeziumsnapshot" : "true",
  "iodebeziumdb" : "postgres",
  "iodebeziumschema" : "s1",
  "iodebeziumtable" : "a",
  "iodebeziumtxId" : "565",
  "iodebeziumlsn" : "29274832",
  "iodebeziumxmin" : null,
  "iodebeziumtxid": "565",                           9
  "iodebeziumtxtotalorder": "1",
  "iodebeziumtxdatacollectionorder": "1",
  "data" : {                                         10
    "before" : null,
    "after" : {
      "pk" : 1,
      "name" : "Bob"
    }
  }
}
1
変更イベントの内容に基づいて変更イベント用にコネクターが生成する一意の ID。
2
イベントのソース。これは、コネクターの設定の database.server.name プロパティーによって指定されるデータベースの論理名です。
3
CloudEvents 仕様のバージョン。
4
変更イベントを生成したコネクタータイプ。このフィールドの形式はです io.debezium.CONNECTOR_TYPE.datachangeevent。の値 CONNECTOR_TYPEmongodb、、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 フィールドが含まれることがあります。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.