1. DataX 概述及安装
DataX 是被广泛使用的数据同步工具,由阿里巴巴集团使用 Java 和 Python 开发,实现了包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各种异构数据源之间的高效数据同步功能。
Sqoop: HDFS 与 RDBMS 之间的 数据迁移 & 同步
DataX:上述任意两种数据源 之间的 数据迁移 & 同步
概述
为了解决异构数据源同步问题,DataX 将复杂的网状的同步链路变成了星型数据链路,DataX 作为中间传输载体负责连接各种数据源。当需要接入一个新的数据源的时候,只需要将此数据源对接到 DataX,便能跟已有的数据源做到无缝数据同步。
DataX 作为星形数据链路的中间载体
DataX 本身作为离线数据同步框架,采用 Framework + plugin 架构构建。将数据源读取和写入抽象成为Reader/Writer插件,纳入到整个同步框架中。
DataX 数据交换原理
核心组件:
Reader:数据采集模块,负责采集数据源的数据,将数据发送给 Framework;
Writer: 数据写入模块,负责不断向 Framework 取数据,并将数据写入到目的端;
Framework:用于连接 reader 和 writer,作为两者的数据传输通道,并处理缓冲,流控,并发,数据转换等核心技术问题。
经过几年积累,DataX 目前已经有了比较全面的插件体系,主流的 RDBMS 数据库、NOSQL、大数据计算系统都已经接入。
DataX 目前支持数据参见官网(https://github.com/alibaba/DataX/blob/master/introduction.md)。
DataX 3.0 开源版本支持单机多线程模式完成同步作业运行,本小节按一个 DataX 作业生命周期的时序图,从整体架构设计非常简要说明 DataX 各个模块相互关系。