RegexRouter

The following provides usage information for the Apache Kafka® SMT org.apache.kafka.connect.transforms.RegexRouter.

Important

RegexRouter is not currently available for managed connectors. For the equivalent SMT for managed connectors, see TopicRegexRouter.

Description

Update the record’s topic using the configured regular expression and replacement string.

Under the hood, the regex is compiled to a java.util.regex.Pattern. If the pattern matches the input topic, java.util.regex.Matcher#replaceFirst() is used with the replacement string to obtain the new topic.

Examples

The following examples show how to configure and use RegexRouter.

Tip

You enclose part of the regular expression (regex) with parentheses to capture this part of the regex in the replacement string. In the replacement string, the enclosed part is represented by a variable $n. The $n variable used for each captured part is $1 for the first part, $2 for the second part, and so on. The variable $0 is used to capture the entire matched string.

Remove a topic prefix

This configuration snippet shows how to remove the prefix soe- from the beginning of a topic.

"transforms": "dropPrefix",
"transforms.dropPrefix.type": "org.apache.kafka.connect.transforms.RegexRouter",
"transforms.dropPrefix.regex": "soe-(.*)",
"transforms.dropPrefix.replacement": "$1"

Before: soe-Order

After: Order

Add a topic prefix

This configuration snippet shows how to add the prefix acme_ to the beginning of a topic.

"transforms": "AddPrefix",
"transforms.AddPrefix.type": "org.apache.kafka.connect.transforms.RegexRouter",
"transforms.AddPrefix.regex": ".*",
"transforms.AddPrefix.replacement": "acme_$0"

Before: Order

After: acme_Order

Remove part of a topic name

This configuration snippet shows how to remove a string in a topic name.

"transforms=RemoveString",
"transforms.RemoveString.type": "org.apache.kafka.connect.transforms.RegexRouter",
"transforms.RemoveString.regex": "(.*)Stream_(.*)",
"transforms.RemoveString.replacement": "$1$2"

Before: Order_Stream_Data

After: Order_Data

Properties

Name Description Type Default Valid Values Importance
regex Regular expression to use for matching. string   valid regex high
replacement Replacement string. string     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.