Mysql 使用Debezium将所有数据库表捕获到一个Kafka主题

Mysql 使用Debezium将所有数据库表捕获到一个Kafka主题,mysql,apache-kafka,cdc,debezium,Mysql,Apache Kafka,Cdc,Debezium,如何配置Debezium将数据库中的所有表发布到单个Kafka主题 有可能吗?默认情况下,Debezium为每个数据库+表写出一个主题 不过,您可能需要查看上的文档 Debezium使您能够在消息到达转换器之前使用单个消息转换(SMT)重新路由发出的更改。Debezium提供的SMT使您能够根据正则表达式和替换模式重写主题和密钥,可根据Debezium的每个实例进行配置 所以你可以试试 transforms=Combine transforms.Combine.type=io.debezium.

如何配置Debezium将数据库中的所有表发布到单个Kafka主题


有可能吗?

默认情况下,Debezium为每个数据库+表写出一个主题

不过,您可能需要查看上的文档

Debezium使您能够在消息到达转换器之前使用单个消息转换(SMT)重新路由发出的更改。Debezium提供的SMT使您能够根据正则表达式和替换模式重写主题和密钥,可根据Debezium的每个实例进行配置

所以你可以试试

transforms=Combine
transforms.Combine.type=io.debezium.transforms.ByLogicalTableRouter
transforms.Combine.topic.regex=(.*)
transforms.Combine.topic.replacement=all_tables

在Kafka Connect文档部分还可以找到其他SMT示例,我认为RegexRouter是值得尝试的

不清楚为什么要这样做,因为每个表都有不同的模式,而且在其中包含许多主题没有缺点Kafka@cricket_007一种情况是,数据库中有多个租户动态创建自己的类型(表)作为其商业模式定义的一部分。在这种情况下,管理主题可能会变得笨拙。例如,您可以选择对租户数据进行分组,并为每个租户设置一个主题。我是否应该在Kafka connect中的
connect file source.properties
中进行上述更改?不,这些是Debezium PropertiesHanks。但我尝试了上面的方法,结果无效,但这个帖子的答案有效