大家好,又见面了,我是你们的朋友全栈君。
(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同步的
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/124950.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...