Kafka Connect InsertField SMT Usage Reference for Confluent Cloud
The org.apache.kafka.connect.transforms.InsertField Apache Kafka® Single
Message Transformation (SMT) inserts fields using attributes from the
record metadata or a configured static value.
Use the concrete transformation type designed for the record key
(org.apache.kafka.connect.transforms.InsertField$Key) or value
(org.apache.kafka.connect.transforms.InsertField$Value).
If the record’s key or value is null, the SMT skips the transformation and passes the record through unchanged.
The partition.field and timestamp.field properties depend on
metadata that a record might not carry. The SMT inserts a partition
field only when the record has a partition, and a timestamp field only
when the record has a timestamp. If that metadata is missing, the SMT
skips the corresponding field.
Examples
The following two configuration
snippet examples show how to use the InsertField SMT.
Insert a static field
To insert a static field, use transforms.InsertField.static.field and
transforms.InsertField.static.value to include the defined static field
and value. In this example, the field is MessageSource with the value
Kafka Connect framework.
"transforms": "InsertField",
"transforms.InsertField.type": "org.apache.kafka.connect.transforms.InsertField$Value",
"transforms.InsertField.static.field": "MessageSource",
"transforms.InsertField.static.value": "Kafka Connect framework"
Before: {"author": "Philip K. Dick", "character": "Palmer Eldritch"}
After: {"author": "Philip K. Dick", "character": "Palmer Eldritch", "MessageSource": "Kafka Connect framework"}
Insert a field into the record key
To insert a field into the record key instead of the value, use the
InsertField$Key transformation type with any of the field-name
properties listed in the Properties table, such as topic.field.
InsertField has no separate key.field property.
"transforms": "InsertField",
"transforms.InsertField.type": "org.apache.kafka.connect.transforms.InsertField$Key",
"transforms.InsertField.topic.field": "SourceTopic"
Before: key {"id": 42}
After: key {"id": 42, "SourceTopic": "orders"}
Tip
For additional examples, see Insert Field for managed connectors.
Properties
Name |
Description |
Type |
Default |
Valid values |
Importance |
|---|---|---|---|---|---|
|
Field name for Kafka offset. This is only applicable to sink
connectors. Suffix with |
String |
Null |
Medium |
|
|
Field name for Kafka partition. Suffix with |
String |
Null |
Medium |
|
|
Whether to replace fields that have a default value and that
are null with the default value. When set to |
Boolean |
true |
true or false |
Medium |
|
Field name for the static value defined in |
String |
Null |
Medium |
|
|
The static value for the field specified in |
String |
Null |
Medium |
|
|
Field name for record timestamp. Suffix with |
String |
Null |
Medium |
|
|
Field name for Kafka topic. Suffix with |
String |
Null |
Medium |
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 Kafka Connect Filter (Kafka) SMT Usage Reference for Confluent Cloud, predicates can conditionally filter out specific records. For details and examples, see Predicates.