12.6. メッセージヘッダーのイベントレコード値への変換


HeaderToValue SMT は、イベントレコードから指定されたヘッダーフィールドを抽出し、そのヘッダーフィールドをイベントレコード内の値にコピーまたは移動します。移動 オプションは、フィールドをペイロードの値として追加する前に、ヘッダーからフィールドを完全に削除します。元のメッセージで複数のヘッダーを操作するように SMT を設定できます。ドット表記を使用して、ヘッダーフィールドをネストするペイロード内のノードを指定できます。SMT の設定に関する詳細は、以下の を参照してください。

12.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
Copy to Clipboard Toggle word wrap

次の例は、変換の適用前および適用後のイベントレコードのヘッダーおよび値を示しています。

例12.1 HeaderToValue SMT の適用の影響

HeaderToValue 変換によって処理される前のイベントレコード
SMT がイベントレコードを処理する前のヘッダー
{
    "header_x": 0,
    "event_timestamp": 1626102708861,
    "key": 100,
}
Copy to Clipboard Toggle word wrap
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
    }
Copy to Clipboard Toggle word wrap
HeaderToValue 変換による処理後のイベントレコード
SMT が指定のフィールドを削除した後のヘッダー
{
    "header_x": 0
}
Copy to Clipboard Toggle word wrap
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
    }
Copy to Clipboard Toggle word wrap

12.6.2. HeaderToValue 変換設定のオプション

次の表に、HeaderToValue SMT で使用できる設定オプションを示します。

Expand
表12.6 HeaderToValue SMT 設定オプション

プロパティー

説明

タイプ

デフォルト

有効な値

重要性

headers

値がレコード値にコピーまたは移動されるレコード内のヘッダー名のコンマ区切りのリスト。

リスト

デフォルト値なし

空でないリスト

fields

headers 設定プロパティーにリストされているヘッダー名と同じ順序でのフィールド名のコンマ区切りのリスト。ドット表記を使用して、メッセージペイロードの特定のノード内にフィールドをネストするように SMT に指示します。ドット表記を使用するように SMT を設定する方法は、このトピックの前半にある を参照してください。

リスト

デフォルト値なし

空でないリスト

operation

次のオプションのいずれかを指定します。move:: SMT は、ヘッダーフィールドをイベントレコード内の値に移動し、ヘッダーからフィールドを削除します。copy:: SMT はヘッダーフィールドをイベントレコード内の値にコピーし、元のヘッダーフィールドを保持します。

string

デフォルト値なし

移動またはコピー

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat