阿里巴巴开源离线同步工具 DataX3.0 介绍

一. DataX3.0概览

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

设计理念

为了解决异构数据源同步问题,DataX将复杂的网状的同步链路变成了星型数据链路,DataX作为中间传输载体负责连接各种数据源。当需要接入一个新的数据源的时候,只需要将此数据源对接到DataX,便能跟已有的数据源做到无缝数据同步。

当前使用现状

DataX在阿里巴巴集团内被广泛使用,承担了所有大数据的离线同步业务,并已持续稳定运行了6年之久。目前每天完成同步8w多道作业,每日传输数据量超过300TB。

此前已经开源DataX1.0版本,此次介绍为阿里巴巴开源全新版本DataX3.0,有了更多更强大的功能和更好的使用体验。Github主页地址:https://github.com/alibaba/DataX

二、DataX3.0框架设计

DataX本身作为离线数据同步框架,采用Framework + plugin架构构建。将数据源读取和写入抽象成为Reader/Writer插件,纳入到整个同步框架中。

Reader:Reader为数据采集模块,负责采集数据源的数据,将数据发送给Framework。

Writer: Writer为数据写入模块,负责不断向Framework取数据,并将数据写入到目的端。

Framework:Framework用于连接reader和writer,作为两者的数据传输通道,并处理缓冲,流控,并发,数据转换等核心技术问题。

三. DataX3.0插件体系

经过几年积累,DataX目前已经有了比较全面的插件体系,主流的RDBMS数据库、NOSQL、大数据计算系统都已经接入。DataX目前支持数据如下:

DataX Framework提供了简单的接口与插件交互,提供简单的插件接入机制,只需要任意加上一种插件,就能无缝对接其他数据源。详情请看:DataX数据源指南

四、DataX3.0核心架构

DataX 3.0 开源版本支持单机多线程模式完成同步作业运行,本小节按一个DataX作业生命周期的时序图,从整体架构设计非常简要说明DataX各个模块相互关系。

核心模块介绍:

DataX完成单个数据同步的作业,我们称之为Job,DataX接受到一个Job之后,将启动一个进程来完成整个作业同步过程。DataX Job模块是单个作业的中枢管理节点,承担了数据清理、子任务切分(将单一作业计算转化为多个子Task)、TaskGroup管理等功能。

DataXJob启动后,会根据不同的源端切分策略,将Job切分成多个小的Task(子任务),以便于并发执行。Task便是DataX作业的最小单元,每一个Task都会负责一部分数据的同步工作。

切分多个Task之后,DataX Job会调用Scheduler模块,根据配置的并发数据量,将拆分成的Task重新组合,组装成TaskGroup(任务组)。每一个TaskGroup负责以一定的并发运行完毕分配好的所有Task,默认单个任务组的并发数量为5。

每一个Task都由TaskGroup负责启动,Task启动后,会固定启动Reader—>Channel—>Writer的线程来完成任务

文章转载自 开源中国社区[http://www.oschina.net]

时间: 2024-12-10 20:57:33

阿里巴巴开源离线同步工具 DataX3.0 介绍的相关文章

使用阿里巴巴开源数据库同步工具DATAX实现跨数据库同步

使用阿里巴巴开源数据库同步工具DATAX实现跨数据库同步 DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL.Oracle.HDFS.Hive.OceanBase.HBase.OTS.ODPS 等各种异构数据源之间高效的数据同步功能. 点击进入 先请配置DataX 环境变量 Linux.Windows JDK(1.8) Python(推荐Python2.6.X) Apache Maven 3.x (Compile DataX) 下面演示dataX 配置示例:从M

rsync相对于其他同步工具的优缺点介绍_服务器其它

rsync它原本是在Linux系统下面的一个文件同步协议,随着技术的发展,它也有其它版本的,如Windows和AIX.HPUX下面都有相应的版本可以支持的.Rsync这个同步工具的好处在于完全命令行下面的操作,有详细的日志文件,同时也能支持多种不同情况下的更新,例如备份式更新等,还有一个非常好的地方是,它和服务器之间可以互相同步,即可以从服务器上更新文件下来,也可以把本地的文件提交到服务器上面去.只要你配置的参数是正确的,就能完成这样的工作. 而且这个工具占用的系统资源也比较小.另外我们也试过,

开源KVM管理工具介绍

在之前的文章中,我们介绍了开源虚拟化平台KVM的概念与工作原理.下面我们来看看KVM的获取方式与管理工具. 两种方式获取KVM 购买Linux版本获得KVM.很多Linux发行版本都内置有KVM,包括红帽企业Linux 5.4及以上版本,SUSE Linux Enterprise Server 11 SP1及以上版本,Canonical Ubuntu 10.04 LTS及以上版本.如果想虚拟运行Linux的服务器,或者虚拟运行Linux与Windows服务器的话,该购买方法最合适. 将KVM作为

centos 6.0下安装rsync远程数据同步工具

Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.Rsync使用所谓的"Rsync算法"来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快. Rsync本来是用于替代rcp的一个工具,目前由rsync.samba.org维护,所以rsync.conf文件的格式类似于samba的主配置文件.Rsync可以通过rsh或ssh使用,也能以daemon模式去运行,

开源性能测试工具-Apache ab介绍

引子 按照原定计划,今天开始研究 JMeter,一天的时间看完了大半的 User Manual,发现原来只要沉住气,学习效率还是蛮高的,而且大堆的英文文档也没有那么可怕. 本来想顺便把文档翻译一下,不过后来想了想,看懂是一回事,全部翻译出来又是另外一回事了,工作量太大,而且这也不是我一开始要研究 JMeter 的本意.不如大家有兴趣一起研究的遇到问题再一起讨论吧. 开源工具通常都是为了某个特定的目的而开发出来的,所以如果想找到一个开源的性能测试工具去与LoadRunner 或者 QALoad 之

Red Gate系列之四 SQL Data Compare 10.2.0.885 Edition 数据比较同步工具 完全破解+使用教程

原文:Red Gate系列之四 SQL Data Compare 10.2.0.885 Edition 数据比较同步工具 完全破解+使用教程 Red Gate系列之四 SQL Data Compare 10.2.0.885 Edition 数据比较同步工具 完全破解+使用教程 Red Gate系列文章: Red Gate系列之一 SQL Compare 10.2.0.1337 Edition 数据库比较工具 完全破解+使用教程 Red Gate系列之二 SQL Source Control 3.

bfsync 0.3.0发布 文件同步工具

bfsync 是一个文件同步工具,用于保存多台机器上的大文件同步.它能够构建FuSE文件系统,安装资料库,并通过挂载点查看和修改内容.commit/push/pull/put/get 命令集可以用来控制bfsyncs行为,并触发数据/历史和机器之间的转移.bfsync能够在多台机器之间同步文件,也可以被用来存储备份. bfsync 0.3.0该版本更新了SQLite数据库http://www.aliyun.com/zixun/aggregation/33795.html">Berkeley

Kiwix 0.9 beta3发布 开源离线阅读器

Kiwix是一款基于Web内容的开源离线阅读器,支持ZIM文件格式.它采用http://www.aliyun.com/zixun/aggregation/29851.html">Mozilla框架,集成了一个全文搜索引擎,如,该软件可以让你离线阅读Wikipedia维基百科的内容. Kiwix 0.9 beta3版本进行了多个可用性方面的改进和错误修正.新的静态版本可用于Linux和Sugar. 软件信息:http://www.kiwix.org/index.php/Main_Page 下

阿里巴巴开源技术汇总:115个软件(三)

Hi~大家好,第三期阿里开源技术汇总又和大家见面了!在这一期中我们又给大家带来了20个项目的介绍,保证能让你们看得大呼过瘾.准备好了吗?现在就让我们跟随一起看看在这期的文章里出现的哪些新鲜刺激的开源项目吧! 1.Weex [项目简介] Weex是阿里近日在Qcon大会上宣布开源的一款跨平台移动开发工具.Weex不仅能够完美兼顾性能与动态性,让移动开发者通过简捷的前端语法写出Native级别的性能体验,而且并支持iOS.安卓.YunOS及Web等多端部署. [架构图] [官网地址] http://