Apache kafka Kafka Connect转换-RegexRouter替换主题名称(小写)

Apache kafka Kafka Connect转换-RegexRouter替换主题名称(小写),apache-kafka,apache-kafka-connect,debezium,Apache Kafka,Apache Kafka Connect,Debezium,我们正在尝试在Kafka Connect中设置一个连接器(Debezium),并通过正则表达式转换该连接器生成的所有主题名称。下面的正则表达式正在工作并检测我们想要的模式,但是我们还需要以小写形式创建所有主题名称。 我们试图将其放在替换表达式中为\L$1,但它只是打印,并且在主题名称前面加上L,例如LOutbound.Policy,而不是outbound.Policy 有人知道怎么做吗?提前谢谢 这是connector curl命令 curl -i -X PUT http://kafka-alp

我们正在尝试在Kafka Connect中设置一个连接器(Debezium),并通过正则表达式转换该连接器生成的所有主题名称。下面的正则表达式正在工作并检测我们想要的模式,但是我们还需要以小写形式创建所有主题名称。

我们试图将其放在替换表达式中为\L$1,但它只是打印,并且在主题名称前面加上L,例如LOutbound.Policy,而不是outbound.Policy

有人知道怎么做吗?提前谢谢

这是connector curl命令

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"
}'

\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",

感谢这次板球比赛,如果我们能做到这一点,我将探索这条路线并在这里发布。@DavidGMediavilla你能做到吗?我目前也在考虑做同样的事情,但在我的情况下,我需要将小写转换为大写。@Nomad请看这里如何编写您自己的转换