各种开源数据库同步工具汇总

(1) OGG

Oracle GoldenGate 是一款实时访问、基于日志变化捕捉数据,并且在异构平台之间迚行数据传输的产品。GoldenGate TDM是一种基于软件的数据复制方式,它从数据库的日志解析数据的变化(数据量只有日志的四分之一左右)。GoldenGate TDM将数据变化转化为自己的格式,直接通过TCP/IP网络传输,无需依赖于数据库自身的传递方式,而且可以通过高达10:1的压缩率对数据迚行压缩,可以大大降低带宽需求。在目标端,GoldenGate TDM可以通过交易重组,分批加载等技术手段大大加快数据投递的速度和效率,降低目标系统的资源占用,可以在亚秒级实现大量数据的复制,并且目标端数据库是活动的。

优点:牛逼

缺点:好像不开源;

(2) Canal

canal是由Alibaba开源的一个基于binlog的增量日志组件,其核心原理是canal伪装成Mysql的slave,发送dump协议获取binlog,解析并存储起来给客户端消费。

优点:可以同步任何非查询类操作。DDL和DML语句(除了数据查询语句select)。增量+全量都可以

缺点:数据源只支持MySQL,因为利用了MySQL的binlog特性

项目地址:https://github.com/alibaba/canal

(3) otter

otter是一款基于Java且免费、开源基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库的解决方案

优点:

1. 单向同步, mysql –> oracle互相同步

2. 双向同步,无冲突变更

3. 文件同步,本地/aranda文件

4. 双A同步,冲突检测&冲突补救

5. 数据迁移,中间表/行记录同步

缺点:同canal,因其是利用canal来进行同步的,canal作为其数据源组件

项目地址:https://github.com/alibaba/otter

(4) DataX

DataX 是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。

优点:支持非常多数据库同步,原理是通过查询语句select同步的

缺点:不支持ddl同步

项目地址:https://github.com/alibaba/DataX

(5) kettle

Kettle是一款国外开源的ETL工具,用java编写,可以在视窗、Linux和Unix上运行,数据抽取高效稳定,中文称水壶。这个项目的主要程序员MATT想把各种数据放进一个水壶,然后以指定的格式流出。它是一个ETL工具集,允许你管理来自不同数据库的数据,并通过提供一个图形用户环境来描述你想做什么,而不是你想怎么做。Kettle中有两个脚本文件,转换和作业。转换完成了数据的基本转换,而作业完成了对整个工作流的控制。

优点:功能强大,支持几乎所有数据库;

缺点: 需要用户自己一步步配置,学习成本高;通过查询语句select同步的;

项目地址:https://github.com/pentaho/pentaho-kettle

(6) FlinkX

FlinkX是在是袋鼠云内部广泛使用的基于flink的分布式离线和实时的数据同步框架,实现了多种异构数据源之间高效的数据迁移。FlinkX是一个基于Flink的批流统一的数据同步工具,既可以采集静态的数据,比如MySQL,HDFS等,也可以采集实时变化的数据,比如MySQL binlog,Kafka等。

项目地址:https://github.com/DTStack/flinkx

缺点: 通过查询语句select同步的

(7) Porter

Porter是一款随行付开源的数据同步中间件,主要用于解决同构/异构数据库之间的表级别数据同步问题。

项目地址:https://github.com/sxfad/porter

缺点: 数据源只支持MySQL和Oracle;仅支持DML;通过查询语句select同步的

你可能感兴趣的:(数据库)