7.2.6. トランザクション境界を表す Debezium PostgreSQL コネクターによって生成されたイベント
Debezium は、トランザクション境界を表し、データ変更イベントメッセージをエンリッチするイベントを生成できます。トランザクション BEGIN
および END
ごとに、Debezium は以下のフィールドが含まれるイベントを生成します。
-
status
:BEGIN
またはEND
-
id
: 一意のトランザクション識別子の文字列表現 -
event_count
(END
イベント用)- トランザクションによって出力されたイベントの合計数 -
data_collections
(END
イベント用)- 指定のデータコレクションからの変更によって出力されたイベントの数を提供するdata
のペアの配列。_collection
と event_count
例
{ "status": "BEGIN", "id": "571", "event_count": null, "data_collections": null } { "status": "END", "id": "571", "event_count": 2, "data_collections": [ { "data_collection": "s1.a", "event_count": 1 }, { "data_collection": "s2.a", "event_count": 1 } ] }
トランザクションイベントは、database.server.name. transaction
という名前のトピックに書き込まれます。
変更データイベントのエンリッチメント
トランザクションメタデータを有効にすると、データ message Envelope
は新しい トランザクション
フィールドでエンリッチされます。このフィールドは、複合フィールドの形式ですべてのイベントに関する情報を提供します。
-
id
: 一意のトランザクション識別子の文字列表現 -
total_order
: トランザクションによって生成されたすべてのイベントを対象とするイベントの絶対位置。 -
data_collection_order
- トランザクションによって出力されたすべてのイベントを対象とするイベントのデータコレクションごとの位置。
以下は、メッセージの例になります。
{ "before": null, "after": { "pk": "2", "aa": "1" }, "source": { ... }, "op": "c", "ts_ms": "1580390884335", "transaction": { "id": "571", "total_order": "1", "data_collection_order": "1" } }