FieldsToHeaders

Description

FieldsToHeaders pull field(s) out of a complex (non-primitive, Map or Struct) key or value and puts the extracted field(s) in headers. Fields and headers are matched by index, for example:

transforms.fieldsToHeadersTransform.fields=a,b,c,d
transforms.fieldsToHeadersTransform.headers=X,Y,Z,P

field 'a' goes to header 'X', field 'b' goes to header 'Y' etc…​

Any null values are passed through unmodified.

If transforms.fieldsToHeadersTransform.fields is empty or omitted the whole value will be copied in the first transforms.fieldsToHeadersTransform.headers.

Use the concrete transformation type designed for the record key (org.apache.camel.kafkaconnector.transforms.FieldsToHeadersTransform$Key) or value (org.apache.camel.kafkaconnector.transforms.FieldsToHeadersTransform$Value).

Examples

The following examples show how to use FieldsToHeaders.

Given the following configuration:

transforms=FieldsToHeadersTransform
transforms.fieldsToHeadersTransform.type=org.apache.camel.kafkaconnector.transforms.FieldsToHeadersTransform$Value
transforms.fieldsToHeadersTransform.fields=FROM,TO,CC,SUBJECT
transforms.fieldsToHeadersTransform.headers=from,to,cc,subject

and the following message:

{
            "FROM": "bob@example.com",
              "TO": "alice@mail.com",
              "CC": "managers@enterprise.com",
         "SUBJECT": "Needs Attention!",
            "BODY": "Tere is an issue that needs your attention!",
  "APP_SETTING_ID": 9,
"APP_SETTING_NAME": "my_name",
     "SETTING_KEY":"my_setting_key"
}

the following headers will be added to the Kafka ConnectRecord object:

   from: "bob@example.com"
     to: "alice@mail.com"
     cc: "managers@enterprise.com"
subject: "Needs Attention!"
   body: "Tere is an issue that needs your attention!"

Given the following configuration:

transforms=FieldsToHeadersTransform
transforms.fieldsToHeadersTransform.type=org.apache.camel.kafkaconnector.transforms.FieldsToHeadersTransform$Key
transforms.fieldsToHeadersTransform.headers=camel.kafka.KEY

and the following message:

kafka record with:
    value: "my message"
    key: 100

the following headers will be added to the Kafka ConnectRecord object:

   camel.kafka.KEY: 100

Properties

Transform Description

fields

Field names to extract.

headers

The target header names