我正在建立使用apache-kafka和apache-kafka-connect将表数据从一个数据库导入到另一个数据库的管道。我无法使用log-based CDC
(以及诸如debezium之类的很棒的东西),所以我必须使用query-based CDC
和JDBC Source Connector
。
JDBC Sink Connector
用于从Kafka导入到目标数据库。此连接器supports deletes:
具有 null 值的记录被视为墓碑事件,并导致删除目标表中的相应行。
因此,如果我要使用Debezium
,可以使用tombstones.on.delete
选项发出逻辑删除,但是,在基于查询的CDC方法中,我需要使用特殊列来标记已删除的行。
是否存在将消息(表示“软删除”)转换为逻辑删除事件(或者将此类消息的值设置为null)的解决方案?也许我可以使用某种有条件的Kafka Connect SMT或其他方式?
总体而言,将“软” 删除项转换为真实的删除项是个好主意吗?
谢谢!
类似的问题: