Kafka Connect Single Message Transformation Reference for Confluent Cloud
Single Message Transformations (SMTs) are per-message transformations that modify messages as they flow between connectors and Kafka. They:
Transform inbound messages after a source connector produces them but before they are written to Kafka.
Transform outbound messages before they are sent to a sink connector.
Tip
For a tutorial and an in-depth exploration of this topic, see How to Use Single Message Transforms in Kafka Connect.
The following SMTs are available for Confluent Cloud:
Transform |
Description |
|---|---|
Adjust the precision and scale of decimal fields within a record’s key or value. |
|
Convert binary data (bytes field) in a Kafka Connect structure into a string format. |
|
Cast fields or the entire key or value to a specific type (for example, to force an integer field to a smaller width). |
|
Change the case of the record topic name (for example, to uppercase or lowercase). |
|
Drop either a key or a value from a record and set it to null. |
|
Drop one or more headers from each record. |
|
Only available for Oracle XStream CDC source and managed Debezium connectors. Route Debezium outbox events using a regex configuration option. |
|
Extract the specified field from a Struct when schema present, or a Map in the case of schemaless data. Any null values are passed through unmodified. |
|
Promote a nested field within the record key or value to a top-level field to simplify data access for downstream systems. |
|
Extract the timestamp from a field within the record key or value and use it to overwrite the record’s existing timestamp. |
|
Replace the record topic with a new topic derived from its key or value. |
|
Drop all records. Designed to be used in conjunction with a Predicate. |
|
Include or drop records that match a configurable |
|
Flatten a nested data structure. This generates names for each field by concatenating the field names at each level with a configurable delimiter character. |
|
Flatten a nested data structure including nested maps. This generates names for each field by concatenating the field names at each level with a configurable delimiter character. |
|
Moves or copies fields in a record key or value into the record’s header. |
|
Moves or copies fields in the record header to a record key or value. |
|
Wrap data using the specified field name in a Struct when schema present, or a Map in the case of schemaless data. |
|
Insert field using attributes from the record metadata or a configured static value. |
|
Insert a literal value as a record header. |
|
Convert a record key into a field within the record value (by default, a string field named |
|
Mask specified fields with a valid null value for the field type. |
|
Update the record’s topic field as a function of the original topic value and the record’s timestamp field. |
|
Filter or rename fields. |
|
Filter or rename nested fields. |
|
Only available for managed source connectors. Ensure all decimal fields in a Kafka Connect structure do not exceed a specified maximum precision. |
|
Set the schema name, version, or both on the record’s key or value schema. |
|
Convert timestamps between different formats such as Unix epoch, strings, and Connect Date and Timestamp types. |
|
Replace the existing timestamp of an incoming record with the precise time the record is processed by the connector. |
|
Add a new field to the record key or value, populating it with the system timestamp at the moment of processing. |
|
Update the record’s topic field as a function of the original topic value and the record timestamp. |
|
Only available for Debezium PostgreSQL CDC V2 Source connectors. Process raw change event records captured from TimescaleDB databases, performing logical routing and adding relevant metadata. |
|
Only available for Oracle XStream CDC source and managed Debezium connectors. Convert the timezone of timestamp fields in Debezium change event records to a specified target timezone. |
|
Manage tombstone records. A tombstone record is defined as a record with the entire value field being null, whether or not it has ValueSchema. |
|
Only available for managed Source and JDBC Sink connectors. Update the record topic using the configured regular expression and replacement string. |
|
Replace the record key with a new key formed from a subset of fields in the record value. |
If the available SMTs don’t meet your transformation requirements, you can create your own SMT for Confluent Cloud. For more information, see Configure Custom SMT for Kafka Connectors in Confluent Cloud.