Debezium 是否可以配置 table_name => kafka 主题映射?

Rob*_*cki 3 mysql apache-kafka apache-kafka-connect debezium

我已阅读http://debezium.io/docs/connectors/mysql/,但我找不到任何有关是否可以配置debezium的信息,以便可以将2个(或更多)表中的更改写入相同的单个kafka话题?在我看来,它总是 1 个表 -> 1 个主题。

Rob*_*att 5

是的,根据您标识的链接,使用Single Message Transforms。您可以使用正则表达式 (regex) 将表映射到所需的主题。两者或都应该可以解决问题。这篇文章中有一个后者的例子:io.debezium.transforms.ByLogicalTableRouterorg.apache.kafka.connect.transforms.RegexRouter

"transforms":"dropPrefix",  
"transforms.dropPrefix.type":"org.apache.kafka.connect.transforms.RegexRouter",  
"transforms.dropPrefix.regex":"DC1-TEST-(.*)",  
"transforms.dropPrefix.replacement":"$1"
Run Code Online (Sandbox Code Playgroud)

  • “ByLogicalTableRouter”可让您丰富主键,当一个主题中存在来自多个表的事件时,这可能很有用。关于上面评论中的问题,它最初的用例是针对分片表的,但它也应该适用于具有不同模式的表。 (2认同)