DataX概述

管网地址:https://github.com/alibaba/DataX

第一章 概述

1.1 什么是DataX

     DataX 是阿里云 DataWorks数据集成 的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS, databend 等各种异构数据源之间高效的数据同步功能。

 

 1.2 DataX的设计

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

 

设计理念:插件式

 1.3 支持的数据源

  DataX目前已经有了比较全面的插件体系,主流的RDBMS数据库、NOSQL、大数据

 

 

 1.4 框架设计

 

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

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

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

1.5 运行原理

 

 Job:单个作业的管理节点,负责数据清理、子任务划分、TaskGroup监控管理。

Task:由Job切分而来,是DataX作业的最小单元,每个Task负责一部分数据的同步工作。

Schedule:将Task组成TaskGroup,单个TaskGroup的并发数量为5。

TaskGroup:负责启动Task。

举例来说,用户提交了一个DataX作业,并且配置了20个并发,目的是将一个100张分表的mysql数据同步到odps里面。DataX的调度决策思路是:

1)DataXJob根据分库分表切分成了100个Task。

2)根据20个并发,DataX计算共需要分配4个TaskGroup。

3)4个TaskGroup平分切分好的100个Task,每一个TaskGroup负责以5个并发共计运行25个Task。

1.6 与Sqoop的对比

功能 DataX Sqoop
运行模式 单进程多线程 MR
MySQL

单机压力大;

读写粒度容易控制;

MR模式重,写出错处理麻烦
Hive读写 单机压力大 很好
文件格式 orc支持 orc不支持,可添加
分布式 不支持,可以通过调度系统规避 支持
流控 有流控(限速)功能 需要定制
统计信息 已有一些统计,上报需定制 没有,分布式的数据收集不方便
数据校验 在core部分有校验功能 没有,分布式的数据收集不方便
监控 需要定制 需要定制
社区 开源不久,社区不活跃 一直活跃,核心部分变动很少

 

posted @ 2023-03-14 10:28  创客未来  阅读(123)  评论(0编辑  收藏  举报