一、DataX简介

一、什么是DataX

  • DataX是阿里巴巴开源的一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。
  • DataX的github地址:https://github.com/alibaba/DataX

二、DataX设计

  • 为了解决异构数据源同步问题,DataX 将复杂的网状的同步链路变成了星型数据链路,DataX 作为中间传输载体负责连接各种数据源。当需要接入一个新的数据源的时候,只需要将此数据源对接到 Datax,便能跟已有的数据源做到无缝数据同步。
    在这里插入图片描述
  • DataX的设计理念是插件式的,这样后续有新的数据库,对源码改动是很少的。
  • 对于一个数据的驱动分为两种:writer和reader
    在这里插入图片描述

三、支持的数据源

  • 对于文档那一列,官网给出了 读和写的配置案例和参数描述
    在这里插入图片描述

四、框架设计

在这里插入图片描述

  • Reader:数据采集模块,负责采集数据源的数据,将数据发送给Framework。
  • Writer:数据写入模块,负责不断向Framework取数据,并将数据写入到目的端。
  • Framework:用于连接reader和writer,作为两者的数据传输通道,并处理缓冲,流控,并发,数据转换等核心技术问题。

五、运行原理

在这里插入图片描述

  • 模块说明:
    • Job:单个作业的管理节点,负责数据清理、子任务划分、TaskGroup监控管理。
    • Task:由Job切分而来,是DataX作业的最小单元,每个Task负责一部分数据的同步工作。
    • Schedule:将Task组成TaskGroup,单个TaskGroup的并发数量为5。
    • TaskGroup:负责启动Task。
  • 举例
    • 举例来说,用户提交了一个 DataX 作业,并且配置了 20 个并发,目的是将一个 100 张
      分表的 mysql 数据同步到 odps 里面。 DataX 的调度决策思路是:
      • 第一步:DataXJob 根据分库分表切分成了 100 个 Task。
      • 第二步:根据 20 个并发,DataX 计算共需要分配 4 个 TaskGroup。
      • 第三步:4 个 TaskGroup 平分切分好的 100 个 Task,每一个 TaskGroup 负责以 5 个并发共计运行 25 个 Task。

六、DataX和Sqoop对比

功能DataXSqoop
运行模式单进程多线程MR(分布式)
MySQL读写单机压力大;
读写力度容易控制;
MR模式重,写出错处理麻烦
Hive读写单机压力大很好
文件格式orc支持orc不支持,可添加
分布式不支持,可以通过调度系统规避支持
流控有流控功能需要定制
统计信息已有一些统计,上报需定制没有,分布式的数据收集不方便
数据校验在core部分有校验功能没有,分布式的数据手机不方便
监控需要定制需要定制
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值