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