kafka connect能否实现两个关系型数据库的数据的同步删除?

Double life 发表于: 2022-03-14   最后更新时间: 2022-03-14 22:55:51   1,165 游览

现在要做一个案例,暂时的需求是这样的。客户那边是关系型数据库,我们这边也是关系型数据库。 首先我们会把客户那边的数据库copy一份,放在我们本地。然后具体的需求就是,客户那边对数据库中的数据进行修改、增加、删除的时候,我们这边的数据也可以实时同步。 我利用Kafka-connect可以实现了数据的新增、修改,可是删除一直实现不了,请问可以实现吗,还是说需要自己去写一些接口什么的呢?

下边是source和sink的配置

***source:***
name=mysql-b-source-comments
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
tasks.max=1
connection.url=jdbc:mysql://localhost/test?user=root&password=root
table.whitelist=comments
mode=timestamp
timestamp.column.name=commenttime
topic.prefix=mysql-kafka-
***sink:***
name=mysql-b-sink-comments
connector.class=io.confluent.connect.jdbc.JdbcSinkConnector
tasks.max=1
topics=mysql-kafka-comments
connection.url=jdbc:mysql://localhost:3306/test?user=root&password=root
auto.create=false
insert.mode=upsert
pk.mode = record_value
pk.fields = id
table.name.format=kafkacomments
发表于 2022-03-14
添加评论

连接器无法捕获从表中删除的行,因为连接器通过 JDBC 查询源表,因此无法查看从表中删除的行。

但是,你可以换一种软删除的方式。就是标记该行状态为删除,你能捕获到更新,连接器就可以收到同步信息,最后你统一删除这些标记为删除的数据。

Double life -> 半兽人 2年前

如果说批处理的话我觉得可以搞定,那实时性的同步,不知道该怎么实现呢,麻烦再多提供一些思路,谢谢了

半兽人 -> Double life 2年前

我没有了,基因决定了上层的可操作性。

Double life -> 半兽人 2年前

谢谢!

你的答案

查看kafka相关的其他问题或提一个您自己的问题