13.6. メッセージヘッダーのイベントレコード値への変換
HeaderToValue SMT は、イベントレコードから指定されたヘッダーフィールドを抽出し、そのヘッダーフィールドをイベントレコード内の値にコピーまたは移動します。移動 オプションは、フィールドをペイロードの値として追加する前に、ヘッダーからフィールドを完全に削除します。元のメッセージで複数のヘッダーを操作するように SMT を設定できます。ドット表記を使用して、ヘッダーフィールドをネストするペイロード内のノードを指定できます。SMT の設定に関する詳細は、以下の 例 を参照してください。
13.6.1. 例: Debezium HeaderToValue SMT の基本設定 リンクのコピーリンクがクリップボードにコピーされました!
イベントレコードのメッセージヘッダーをレコード値に抽出するには、コネクターの Kafka Connect 設定で HeaderToValue SMT を設定します。元のヘッダーを削除するかコピーするように変換を設定できます。レコードからヘッダーフィールドを削除するには、move 操作を使用するように SMT を設定します。元のレコードにヘッダーフィールドを保持するには、copy 操作を使用するように SMT を設定します。たとえば、ヘッダー event_timestamp および key をイベントメッセージから削除するには、以下の行をコネクター設定に追加します。
transforms=moveHeadersToValue transforms.moveHeadersToValue.type=io.debezium.transforms.HeaderToValue transforms.moveHeadersToValue.headers=event_timestamp,key transforms.moveHeadersToValue.fields=timestamp,source.id transforms.moveHeadersToValue.operation=move
transforms=moveHeadersToValue
transforms.moveHeadersToValue.type=io.debezium.transforms.HeaderToValue
transforms.moveHeadersToValue.headers=event_timestamp,key
transforms.moveHeadersToValue.fields=timestamp,source.id
transforms.moveHeadersToValue.operation=move
次の例は、変換の適用前および適用後のイベントレコードのヘッダーおよび値を示しています。
例13.1 HeaderToValue SMT の適用の影響
HeaderToValue変換によって処理される前のイベントレコード- SMT がイベントレコードを処理する前のヘッダー
{ "header_x": 0, "event_timestamp": 1626102708861, "key": 100, }{ "header_x": 0, "event_timestamp": 1626102708861, "key": 100, }Copy to Clipboard Copied! Toggle word wrap Toggle overflow - SMT がイベントレコードを処理する前の値
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
HeaderToValue変換による処理後のイベントレコード- SMT が指定のフィールドを削除した後のヘッダー
{ "header_x": 0 }{ "header_x": 0 }Copy to Clipboard Copied! Toggle word wrap Toggle overflow - SMT がヘッダーフィールドを値に移動した後の値
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
13.6.2. HeaderToValue 変換設定のオプション リンクのコピーリンクがクリップボードにコピーされました!
次の表に、HeaderToValue SMT で使用できる設定オプションを示します。
| プロパティー | 説明 | 型 | デフォルト | 有効な値 | 重要性 |
| 値がレコード値にコピーまたは移動されるレコード内のヘッダー名のコンマ区切りのリスト。 | list | デフォルト値なし | 空でないリスト | 高 | |
|
| list | デフォルト値なし | 空でないリスト | 高 | |
|
次のオプションのいずれかを指定します。 | string | デフォルト値なし | 移動またはコピー | 高 |