当前位置: 首页 > 知识库问答 >
问题:

将包含数据的新表添加到现有Debezium连接器

阴焱
2023-03-14

目标:

需要向现有的Debezium MySQL连接器版本1.1.1添加一个新表。最终的连接器重新启动后,应使用更新的配置(table.whitelist中的新表)将表中的数据填充到主题中。

问题:

没有明确的策略来添加一个新表,该表将在初始快照完成后(连接器的前一个版本正在工作)与其数据一起添加到Kafka中。我们正在寻找类似于snapshot.select.statement.overrides的东西,仅适用于工作的连接器。当快照已经创建并且连接器用新表重新启动时,snapshot.select.statement.overrides不起作用。

可能的解决方案:

为应使用数据初始化的表创建并运行新连接器(snapshot.mode=initial)。缺点:每个版本都可能包含一个新的连接器。

  1. 为表创建迁移连接器(v2)(配置snapshot.mode=初始和新database.history.kafka.topic)
  2. 快照完成后删除连接器v2
  3. 删除上一个连接器(v1)的database.history.kafka.topic
  4. 用连接器(v2)中的表更新连接器(v1)-将它们放到table.whitelist
  5. snapshot.modeschema_only_recovery启动连接器(v1)

问题:

哪种方式是正式的?也许我错过了什么,有比第二种更简单的方式吗?

UPD:根据@Matar评论和一些调查,它看起来不需要删除database.history.kafka.topic,因为在默认配置中,它无论如何都会从数据库收集所有DDL。

共有1个答案

龙德润
2023-03-14

使用最新版本的Debezium Server,您可以添加以下配置值

debezium.snapshot.new.tables=parallel

如果您使用的是Debezium,您可以尝试这个配置值

snapshot.new.tables=parallel

注意:Debeziyum服务器支持Kinesis、Google Pub sub和Apache Pulsar。我正在使用它,它的配置有点不同。我必须在每一项之前写上“debezium”

一旦添加了此配置,表中的任何添加都将被删除。白名单,对于这些额外的表,Debezium将创建快照。

 类似资料:
  • 我有一个Debezium连接器,连接到SQL服务器,其中一个表在配置参数中。我想添加另一个表,我已经添加到参数中,尽管我的连接器没有接收到它。 我以前的看起来像这样: 我当前的如下所示: 我重启了Kafka,重启了Debezium中的连接器,但是当我查看bash中的连接器状态时,我仍然看到旧的值。是否需要做其他事情来让连接器刷新配置文件中的内容? Debezium版本:1.2.5。Kafka最终版

  • 向Postgres连接器中添加新表的步骤应该是什么?我的连接器正在跟踪两个表(表1和表2),我想添加另一个表(表3),它已经存在,并且在我的数据库中有数据。 这是我当前的配置: } 我试图修改连接器“table.include.list”并将“public.table3”添加到列表中,但它似乎没有触发此表的快照过程。 有什么想法吗?

  • 我正在尝试使用Liquibase将一个数据库转换为另一个数据库。我有两个数据库,希望在其中一个数据库上运行SQL脚本,使其与另一个数据库相同。我正在使用Liquibase版本3.4.1和两个H2数据库。为了生成SQL脚本,我首先使用diffChangeLog命令生成diff xml,该命令运行良好。(实际上有一个问题:它生成的列类型为VARCHAR,autoIncrement设置为true,但可以

  • 我已经将 Kafka-connect-jdbc-5.5.0.jar 文件从 Confluent 下载到我的本地机器中,我想知道一种将此 jar 添加到 plugin.path=/kafka/connect 的方法。我正在尝试将数据接收器到 MySQL 服务器,所以我使用“连接器.class”:“io.confluent.connect.jdbc.JdbcSinkConnector”,但我面临“er

  • 我在生产中有一个基于Hibernate的应用程序,有一个大型数据库。我需要在这个应用程序中向两个实体(两个表)添加审计,我决定使用Envers。 对于每次插入、更新或删除,Envers都会向实体的审核表中添加一条新记录。 如果从应用程序一开始就支持Envers,那么审计表将在实体创建(INSERT)时填充。 Envers留档非常薄,没有提到任何关于将Envers添加到现有应用程序的内容。 如果我简

  • 我的数据记录如下所示 我想在forloop中向我的数据表添加新行(不是循环现有的数据表) 但这种方法行不通。如何向现有数据目录添加新行?