本文介绍: sourceConnector.jar,将源数据导入至Kafka的topic中sinkConnector.jar,将Kafka topic中的数据导入至目标源但是Kafka并没有提供特别丰富的connector,那么Debezium就出现了。你可以把Debezium简单理解成是CDC技术的一种实现,并提供了很多数据库的sourceConnector.jar和sinkConnector.jar。
背景
平时一些业务场景可能需要我们在多个系统之间进行业务同步,典型的场景有如下几种
上述3个场景的共同要求基本都是,当数据源有新数据时,我们希望马上同步到目标,尽量减少延迟;在同步期间尽量减少对数据源的影响。
解决方案
场景一
对于场景一,我们可以使用的解决方案是Logstash的Jdbc插件。该插件的基本原理是,通过SQL和定期查询,获得新数据之后,送到ES中。但这种解决方案会存在一定的延时,并且如果没新增数据,频繁查询是没必要的。
如果数据库是MySQL,也可以选择阿里的cannal,这样解决了上述问题。现实情况可能是,我们在用PostgreSQL,所以只能选择Logstash。
场景二
对于场景二,如果是同一种数据库,例如Mysql,还是可以选择阿里的cannal。 但是对于其他数据库,例如是Oracle和PostgreSQL,就没办法了
场景三
CDC-Change Data Capture如何解决上述问题
CDC工作原理
Kafka Connect 和 Debezium简单介绍
场景二的例子,将Oracle数据库的数据通过CDC方式同步至PostgrSQL中
使用Debezium时遇到问题的排查思路
场景一和场景三的实现思路
ETL(Extract, Transform, and Load)和Flink CDC
写在最后
参考资料
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。