12.6.6. Debezium 送信トレイメッセージへの追加フィールドの出力
送信トレイテーブルに含まれる列の値を、出力される送信トレイメッセージに追加することができます。例えば、aggregatetype
列に purchase-order
という値を持ち、event Type
という列に order-created
および order-shipped
という値を持つ outbox テーブルを考えてみましょう。column:placement:alias
の構文でフィールドを追加することができます。
placement
に許可されている値は、header
、envelope
、partition
です。
eventType
列の値を送信トレイメッセージのヘッダーに出力するには、以下のような SMT を設定します。
transforms=outbox,... transforms.outbox.type=io.debezium.transforms.outbox.EventRouter transforms.outbox.table.fields.additional.placement=eventType:header:type
結果は、型
がキーとして Kafka メッセージのヘッダー、および eventType
列の値はその値になります。
eventType
列の値を送信トレイメッセージのエンベロープに出力するには、以下のような SMT を設定します。
transforms=outbox,... transforms.outbox.type=io.debezium.transforms.outbox.EventRouter transforms.outbox.table.fields.additional.placement=eventType:envelope:type
送信メッセージをどのパーティションで生成するかを制御するには、SMT を次のように設定します。
transforms=outbox,... transforms.outbox.type=io.debezium.transforms.outbox.EventRouter transforms.outbox.table.fields.additional.placement=partitionColumn:partition
なお、partition
配置については、エイリアスを追加しても効果はありません。