Преобразования Kafka Connect - RegexRouter заменяет имена topi c в нижнем регистре - PullRequest
0 голосов
/ 24 марта 2020

Мы пытаемся настроить соединитель (Debezium) в Kafka Connect и преобразовать все топи c имена, сгенерированные этим соединителем, с помощью регулярных выражений. Приведенное ниже регулярное выражение работает и определяет нужные нам шаблоны, но нам также нужно создать все топи c имена в нижнем регистре.

Мы попытались вставить это в выражение замены как \ L $ 1 , но это просто печать и L перед нашими топи c именами , например LOutbound.Policy вместо исходящих .policy

Кто-нибудь знает, как это сделать? Заранее спасибо!

Это команда скручивания разъема

curl -i -X PUT http://kafka-alpha-cp-kafka-connect:8083/connectors/kafka-bi-datacontract/config -H "Content-Type: application/json" -d '{
"name": "kafka-bi-datacontract",
"connector.class" : "io.debezium.connector.sqlserver.SqlServerConnector",
"database.hostname" : "ukdb3232123",
"database.server.name" : "ukdb3232123\\perf",
"database.port" : "12442",
"database.user" : "KafkaConnect-BI",
"database.password" : "*******",
"database.dbname" : "BeazleyIntelligenceDataContract",
"snapshot.lock.timeout.ms" : "10000000",
"table.whitelist" : "Outbound.Policy,Outbound.Section",
"database.history.kafka.bootstrap.servers" : "kafka-alpha-cp-kafka-headless:9092",
"database.history.kafka.topic": "schema-changes.bidatacontract",
"transforms": "dropTopicPrefix",
"transforms.dropTopicPrefix.type":"org.apache.kafka.connect.transforms.RegexRouter",
"transforms.dropTopicPrefix.regex":"^[^.]+.(.*)",
"transforms.dropTopicPrefix.replacement":"\\L$1"
}'

1 Ответ

0 голосов
/ 25 марта 2020

\L$1 или \\L$1 будет таким же, как L$1.

Вам потребуется создать / найти собственное преобразование для нижнего регистра.

Как только вы это сделаете, вы можете сделать что-то вроде этого

"transforms": "dropTopicPrefix,lowertopic",

"transforms.dropTopicPrefix.type":"org.apache.kafka.connect.transforms.RegexRouter",
"transforms.dropTopicPrefix.regex":"^[^.]+.(.*)",
"transforms.dropTopicPrefix.replacement":"$1",

"transforms.lowerTopic.type":"com.example.foo.LowerCase$Topic",
...