Kafka Connect Single Message Transform Reference for Confluent Cloud
Single Message Transforms (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. | |
Extract specific elements or attributes from XML data and place them into the record’s 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. | |
Convert XML data (stored as bytes or a string) into a strongly typed Connect structure, allowing conversion to formats like Avro. | |
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.