Debezium kafka 连接器未成功更新
Debezium kafka connect connector not updating successfully
我正在尝试使用 Debezium 和 Kafka 进行 CDC。我已经在 table.whitelist
属性 中注册了一个带有 3 个表的连接器并且它工作正常。这是 运行 连接器的配置。
{"name":"xoom-eds-extactor","config":{"connector.class":"io.debezium.connector.mysql.MySqlConnector","database.user":"debezium","database.server.id":"1","database.hostname":"qa514dtc001.ord.qa001.xoom.com","database.password":"xoom123","database.history.kafka.bootstrap.servers":"eds-kafka1:9092","database.history.kafka.topic":"dbhistory.inventory","name":"xoom-eds-extactor","database.server.name":"MySQL-Database-Docker","database.port":"3306","include.schema.changes":"true","table.whitelist":"xoom_eds_extraction_src_db_mock.postal_code_mock,xoom_eds_extraction_src_db_mock.account_number_mock,xoom_eds_extraction_src_db_mock.credit_card_number_mock,xoom_eds_extraction_src_db_mock.ip_address_details_mock,xoom_eds_extraction_src_db_mock.university_details_mock"},"tasks":[{"connector":"xoom-eds-extactor","task":0}],"type":"source"}
现在我想更新连接器并从同一个数据库中添加另外两个表。我正在使用以下命令和配置文件来更新连接器。
命令:
curl -X PUT -H "Content-Type: application/json" --data @xoom-eds-extactor-conf.json "http://eds-kafka1:8083/connectors/xoom-eds-extactor/config"
配置json:
{
"name":"xoom-eds-extactor",
"connector.class":"io.debezium.connector.mysql.MySqlConnector",
"database.hostname":"qa514dtc001.ord.qa001.xoom.com",
"database.port":"3306",
"database.user":"debezium",
"database.password":"xoom123",
"database.server.id":"1",
"database.server.name":"MySQL-Database-Docker",
"database.history.kafka.bootstrap.servers":"eds-kafka1:9092",
"database.history.kafka.topic":"dbhistory.inventory",
"include.schema.changes":"true",
"table.whitelist":"xoom_eds_extraction_src_db_mock.postal_code_mock,xoom_eds_extraction_src_db_mock.account_number_mock,xoom_eds_extraction_src_db_mock.credit_card_number_mock,xoom_eds_extraction_src_db_mock.ip_address_details_mock,xoom_eds_extraction_src_db_mock.university_details_mock"
}
这执行成功,但是当我列出 Kafka 主题时,只有最后 3 个主题存在,没有添加 2 个新主题。
MySQL-Database-Docker
MySQL-Database-Docker.xoom_eds_extraction_src_db_mock.account_number_mock
MySQL-Database-Docker.xoom_eds_extraction_src_db_mock.credit_card_number_mock
MySQL-Database-Docker.xoom_eds_extraction_src_db_mock.postal_code_mock
__consumer_offsets
connect-configs
connect-offsets
connect-status
dbhistory.inventory
有人可以帮我解决这个问题吗?提前致谢。
据我所知,有一个与此问题相关的旧待定 PR,它应该已在 0.9.1
版本中修复。但是如果你使用的是一些旧版本,你可以简单地按照这些步骤操作。
- 添加新表,但不要写入它们
- 关闭连接器
- 更改过滤器配置并将快照模式设置为“schema_only_recovery”
- 删除(或重命名)现有的数据库历史主题
- 重新启动连接器;这将 re-create 数据库模式的内部历史,然后从之前记录的偏移量
继续流式传输
- 开始写入新表
至少我们是这样做的(我们还在用0.8.2
)。
我正在尝试使用 Debezium 和 Kafka 进行 CDC。我已经在 table.whitelist
属性 中注册了一个带有 3 个表的连接器并且它工作正常。这是 运行 连接器的配置。
{"name":"xoom-eds-extactor","config":{"connector.class":"io.debezium.connector.mysql.MySqlConnector","database.user":"debezium","database.server.id":"1","database.hostname":"qa514dtc001.ord.qa001.xoom.com","database.password":"xoom123","database.history.kafka.bootstrap.servers":"eds-kafka1:9092","database.history.kafka.topic":"dbhistory.inventory","name":"xoom-eds-extactor","database.server.name":"MySQL-Database-Docker","database.port":"3306","include.schema.changes":"true","table.whitelist":"xoom_eds_extraction_src_db_mock.postal_code_mock,xoom_eds_extraction_src_db_mock.account_number_mock,xoom_eds_extraction_src_db_mock.credit_card_number_mock,xoom_eds_extraction_src_db_mock.ip_address_details_mock,xoom_eds_extraction_src_db_mock.university_details_mock"},"tasks":[{"connector":"xoom-eds-extactor","task":0}],"type":"source"}
现在我想更新连接器并从同一个数据库中添加另外两个表。我正在使用以下命令和配置文件来更新连接器。
命令:
curl -X PUT -H "Content-Type: application/json" --data @xoom-eds-extactor-conf.json "http://eds-kafka1:8083/connectors/xoom-eds-extactor/config"
配置json:
{
"name":"xoom-eds-extactor",
"connector.class":"io.debezium.connector.mysql.MySqlConnector",
"database.hostname":"qa514dtc001.ord.qa001.xoom.com",
"database.port":"3306",
"database.user":"debezium",
"database.password":"xoom123",
"database.server.id":"1",
"database.server.name":"MySQL-Database-Docker",
"database.history.kafka.bootstrap.servers":"eds-kafka1:9092",
"database.history.kafka.topic":"dbhistory.inventory",
"include.schema.changes":"true",
"table.whitelist":"xoom_eds_extraction_src_db_mock.postal_code_mock,xoom_eds_extraction_src_db_mock.account_number_mock,xoom_eds_extraction_src_db_mock.credit_card_number_mock,xoom_eds_extraction_src_db_mock.ip_address_details_mock,xoom_eds_extraction_src_db_mock.university_details_mock"
}
这执行成功,但是当我列出 Kafka 主题时,只有最后 3 个主题存在,没有添加 2 个新主题。
MySQL-Database-Docker
MySQL-Database-Docker.xoom_eds_extraction_src_db_mock.account_number_mock
MySQL-Database-Docker.xoom_eds_extraction_src_db_mock.credit_card_number_mock
MySQL-Database-Docker.xoom_eds_extraction_src_db_mock.postal_code_mock
__consumer_offsets
connect-configs
connect-offsets
connect-status
dbhistory.inventory
有人可以帮我解决这个问题吗?提前致谢。
据我所知,有一个与此问题相关的旧待定 PR,它应该已在 0.9.1
版本中修复。但是如果你使用的是一些旧版本,你可以简单地按照这些步骤操作。
- 添加新表,但不要写入它们
- 关闭连接器
- 更改过滤器配置并将快照模式设置为“schema_only_recovery”
- 删除(或重命名)现有的数据库历史主题
- 重新启动连接器;这将 re-create 数据库模式的内部历史,然后从之前记录的偏移量 继续流式传输
- 开始写入新表
至少我们是这样做的(我们还在用0.8.2
)。