【问题标题】:Capture all database tables to one Kafka topic with Debezium [duplicate]使用 Debezium 将所有数据库表捕获到一个 Kafka 主题 [重复]
【发布时间】:2019-02-07 21:39:37
【问题描述】:

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

有可能吗?

【问题讨论】:

  • 不清楚为什么要这样做,因为每个表都有不同的模式,并且在 Kafka 中拥有许多主题没有缺点
  • @cricket_007 一种情况可能是您的数据库中有多个租户动态创建自己的类型(表)作为其业务模型定义的一部分。在这种情况下管理主题可能会变得笨拙。例如,您可以选择对租户数据进行分组,并为每个租户设置一个主题。

标签: mysql apache-kafka cdc debezium


【解决方案1】:

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

不过,您可能想查看topic routing 上的文档

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 值得一试

【讨论】:

猜你喜欢
  • 2021-03-08
  • 1970-01-01
  • 2021-10-27
  • 2019-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-03
  • 2021-10-01
相关资源
最近更新 更多