RegexRouter¶
The following provides usage information for the Apache Kafka® SMT org.apache.kafka.connect.transforms.RegexRouter
.
Caution
RegexRouter is not currently available for managed connectors.
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
.
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.