HeaderFrom¶
The following provides usage information for the Apache Kafka® SMT
org.apache.kafka.connect.transforms.HeaderFrom.
Caution
HeaderFrom is not currently available for managed connectors.
Description¶
Moves or copies fields in a record key or value into the record’s header. Use
the concrete transformation type designed for the record key
(org.apache.kafka.connect.transforms.HeaderFrom$Key) or value
(org.apache.kafka.connect.transforms.HeaderFrom$Value).
Example¶
This configuration snippet shows how to use HeaderFrom to move the fields
id and ts in the record’s value into the record header. The transform
removes the fields from the record value. If you want to keep the fields in the
record value, use the operation copy instead of move.
"transforms": "moveFieldsToHeader",
"transforms.moveFieldsToHeader.type": "org.apache.kafka.connect.transforms.HeaderFrom$Value",
"transforms.moveFieldsToHeader.fields": "id,ts",
"transforms.moveFieldsToHeader.headers": "record_id,event_timestamp",
"transforms.moveFieldsToHeader.operation": "move"
Before:
- Record value - { "id": 24, "ts": 1626102708861, "name": "John Smith", "book": "Kafka: The Definitive Guide" } 
- Record header - { "source": "RedditSource" } 
After:
- Record value - { "name": "John Smith", "book": "Kafka: The Definitive Guide" } 
- Record header - { "source": "RedditSource", "id": 24, "ts": 1626102708861, } 
Properties¶
All properties are required.
| Name | Description | Type | Default | Valid Values | Importance | 
|---|---|---|---|---|---|
| fields | A comma-separated list of field names that the transform moves or copies to the record header. | list | non-empty list | high | |
| headers | A comma-separated list of header names. The number of headerslisted must be the same as the number offieldslisted. Theheaderslisted must be in the same order as thefieldslisted. | list | non-empty list | high | |
| operation | The moveoperation moves fields into the record header and removes these fields from the record value. Thecopyoperation adds the header entries but keeps the fields in the record value. | string | move,copy | high | 
Predicates¶
Transformations can be configured with predicates so that the transformation is applied only to records which satisfy a condition. You can use predicates in a transformation chain and, when combined with the Filter (Apache Kafka), predicates can conditionally filter out specific records. For details and examples, see Predicates.