ReplaceField

ここでは、Apache Kafka® SMT org.apache.kafka.connect.transforms.ReplaceField の使用方法を説明します。

説明

Struct または Map のフィールドにフィルターをかけるか、フィールドの名前を変更します。

レコードキー用(org.apache.kafka.connect.transforms.ReplaceField$Key)または値用(org.apache.kafka.connect.transforms.ReplaceField$Value)の固有の変換タイプを使用します。

以下の例は、ReplaceField を構成して使用する方法を示しています。

フィールドのドロップ

この構成スニペットは、ReplaceField を使用してフィールドをブラックリストに指定し、そのフィールドを削除する方法を示しています。

"transforms": "ReplaceField",
"transforms.ReplaceField.type": "org.apache.kafka.connect.transforms.ReplaceField$Value",
"transforms.ReplaceField.blacklist": "c2"

これにより c2 が削除され、元のメッセージが次のように変換されます。

{"c1":22,"c2":"foo"}

変換の結果:

{"c1":22}

フィールド名の変更

この構成スニペットは、ReplaceField を使用して、renames プロパティを指定する方法を示しています。

"transforms": "RenameField",
"transforms.RenameField.type": "org.apache.kafka.connect.transforms.ReplaceField$Value",
"transforms.RenameField.renames": "foo:c1,bar:c2"

これにより、フィールド名の foobarc1c2 に置き換えられます。

変換前: {"foo":22,"bar":"baz"}

変換後: {"c1":22,"c2":"baz"}

ちなみに

その他の例については、マネージド型コネクターの Replace Field を参照してください。

特徴

Name 説明 デフォルト 指定可能な値 重要度
exclude 結果の Struct または Map から除外するフィールド。この指定は include リストより優先されます。 リスト ""  
renames フィールド名変更のマッピング。 リスト "" 変更前と変更後の名前のペアをコロンで区切り、コンマ区切りで並べたリスト(foo:bar,abc:xyz
include 含めるフィールド。指定すると、指定されたフィールドのみが結果の Struct または Map に含まれます。 リスト ""  

述語

"述語" を使用することにより、一定の条件を満たすレコードのみに変換が適用されるように、変換を構成することができます。述語は変換チェーンで使用することができ、Filter(Apache Kafka) と組み合わせると、条件に基づいて特定のレコードを除外できます。詳細と例については、「述語」を参照してください。