一.datax介绍
DataX 是阿里云 DataWorks数据集成 的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS, databend 等各种异构数据源之间高效的数据同步功能。
DataX本身作为数据同步框架,将不同数据源的同步抽象为从源头数据源读取数据的Reader插件,以及向目标端写入数据的Writer插件,理论上DataX框架可以支持任意数据源类型的数据同步工作。同时DataX插件体系作为一套生态系统, 每接入一套新数据源该新加入的数据源即可实现和现有的数据源互通。
二.datax 架构
DataX 采用 Framework + Plugin 架构,将数据源读取和写入抽象称为 Reader/Writer 插件,纳入到整个同步框架中。
![](https://i-blog.csdnimg.cn/blog_migrate/b4fb68bdb0f4f7790e1765213a9bc022.png)
DataX 完成单个数据同步的作业,我们称为 Job,DataX 接收到一个 Job 后,将启动一个进程来完成整个作业同步过程。DataX Job 模块是单个作业的中枢管理节点,承担了数据清理、子任务切分、TaskGroup 管理等功能。
![](https://i-blog.csdnimg.cn/blog_migrate/e79ef212b4183e0cbca8c0cbf8c753f3.png)
DataX Job 启动后,会根据不同源端的切分策略,将 Job 切分成多个小的 Task (子任务),以便于并发执行。
接着 DataX Job 会调用 Scheduler 模块,根据配置的并发数量,将拆分成的 Task 重新组合,组装成 TaskGroup(任务组)。
每一个 Task 都由 TaskGroup 负责启动,Task 启动后,会固定启动 Reader --> Channel --> Writer 线程来完成任务同步工作。
DataX 作业运行启动后,Job 会对 TaskGroup 进行监控操作,等待所有 TaskGroup 完成后,Job 便会成功退出(异常退出时值非0)
三.datax支持数据源
DataX目前已经有了比较全面的插件体系,主流的RDBMS数据库、NOSQL、大数据计算系统都已经接入,目前支持数据如下图,详情请点击:DataX数据源参考指南
类型 | 数据源 | Reader(读) | Writer(写) | 文档 |
RDBMS 关系型数据库 | MySQL | √ | √ | |
Oracle | √ | √ | ||
OceanBase | √ | √ | ||
SQLServer | √ | √ | ||
PostgreSQL | √ | √ | ||
DRDS | √ | √ | ||
Kingbase | √ | √ | ||
通用RDBMS(支持所有关系型数据库) | √ | √ | ||
阿里云数仓数据存储 | ODPS | √ | √ | |
ADB | √ | |||
ADS | √ | |||
OSS | √ | √ | ||
OCS | √ | |||
Hologres | √ | |||
AnalyticDB For PostgreSQL | √ | 写 | ||
阿里云中间件 | datahub | √ | √ | 读 、写 |
SLS | √ | √ | 读 、写 | |
阿里云图数据库 | GDB | √ | √ | |
NoSQL数据存储 | OTS | √ | √ | |
Hbase0.94 | √ | √ | ||
Hbase1.1 | √ | √ | ||
Phoenix4.x | √ | √ | ||
Phoenix5.x | √ | √ | ||
MongoDB | √ | √ | ||
Cassandra | √ | √ | ||
数仓数据存储 | StarRocks | √ | √ | 读 、写 |
ApacheDoris | √ | |||
ClickHouse | √ | 写 | ||
Databend | √ | |||
Hive | √ | √ | ||
kudu | √ | |||
无结构化数据存储 | TxtFile | √ | √ | |
FTP | √ | √ | ||
HDFS | √ | √ | ||
Elasticsearch | √ | |||
时间序列数据库 | OpenTSDB | √ | ||
TSDB | √ | √ | ||
TDengine | √ | √ |
四.阿里云DataWorks数据集成
目前DataX的已有能力已经全部融和进阿里云的数据集成,并且比DataX更加高效、安全,同时数据集成具备DataX不具备的其它高级特性和功能。可以理解为数据集成是DataX的全面升级的商业化用版本,为企业可以提供稳定、可靠、安全的数据传输服务。与DataX相比,数据集成主要有以下几大突出特点:
支持实时同步:
离线同步数据源种类大幅度扩充:
新增比如:DB2、Kafka、Hologres、MetaQ、SAPHANA、达梦等等,持续扩充中
具备同步解决方案: