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 で使用できる設定オプションを示します。

表13.6 HeaderToValue SMT 設定オプション

プロパティー

説明

デフォルト

有効な値

重要性

headers

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

list

デフォルト値なし

空でないリスト

fields

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

list

デフォルト値なし

空でないリスト

operation

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

string

デフォルト値なし

移動またはコピー

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.