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
次の例は、変換の適用前および適用後のイベントレコードのヘッダーおよび値を示しています。
例13.1 HeaderToValue
SMT の適用の影響
HeaderToValue
変換によって処理される前のイベントレコード- SMT がイベントレコードを処理する前のヘッダー
{ "header_x": 0, "event_timestamp": 1626102708861, "key": 100, }
- SMT がイベントレコードを処理する前の値
{ "before": null, "after": { "id": 1, "first_name": "Anne", "last_name": "Kretchmar", "email": "annek@noanswer.org" }, "source": { "version": "2.1.3.Final", "connector": "postgresql", "name": "PostgreSQL_server", "ts_ms": 1559033904863, "snapshot": true, "db": "postgres", "sequence": "[\"24023119\",\"24023128\"]" "schema": "public", "table": "customers", "txId": 555, "lsn": 24023128, "xmin": null }, "op": "c", "ts_ms": 1559033904863 }
HeaderToValue
変換による処理後のイベントレコード- SMT が指定のフィールドを削除した後のヘッダー
{ "header_x": 0 }
- SMT がヘッダーフィールドを値に移動した後の値
{ "before": null, "after": { "id": 1, "first_name": "Anne", "last_name": "Kretchmar", "email": "annek@noanswer.org" }, "source": { "version": "2.1.3.Final", "connector": "postgresql", "name": "PostgreSQL_server", "ts_ms": 1559033904863, "snapshot": true, "db": "postgres", "sequence": "[\"24023119\",\"24023128\"]" "schema": "public", "table": "customers", "txId": 555, "lsn": 24023128, "xmin": null, "id": 100 }, "op": "c", "ts_ms": 1559033904863, "event_timestamp": 1626102708861 }
13.6.2. HeaderToValue
変換設定のオプション
次の表に、HeaderToValue
SMT で使用できる設定オプションを示します。
プロパティー | 説明 | 型 | デフォルト | 有効な値 | 重要性 |
値がレコード値にコピーまたは移動されるレコード内のヘッダー名のコンマ区切りのリスト。 | list | デフォルト値なし | 空でないリスト | 高 | |
| list | デフォルト値なし | 空でないリスト | 高 | |
次のオプションのいずれかを指定します。 | string | デフォルト値なし | 移動またはコピー | 高 |