数据同步工具之DataX理论

一、DataX概述

  1. DataX是开源的异构数据源离线同步工具,可以实现MySQL、Oracle等、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。

二、DataX可支持的数据源

  1. DataX目前已具备比较全面的插件体系,主流的RDBMS数据库、NoSQL、大数据计算系统都已接入,目前可支持的数据如下图所示:
类型数据源Reader(读)Writer(写)
RDBMS关系型数据库MySQL
RDBMS关系型数据库Oracle
RDBMS关系型数据库SQLServer
RDBMS关系型数据库PostgreSQL
NoSQL数据存储HBase0.94
NoSQL数据存储HBase1.1
NoSQL数据存储MongoDB
NoSQL数据存储Hive
无结构化数据存储TxtFile
无结构化数据存储FTP
无结构化数据存储HDFS
无结构化数据存储Elasticsearch

三、DataX架构原理

  1. DataX设计理念
    在这里插入图片描述

  2. DataX框架设计
    在这里插入图片描述
    (1)Reader:数据采集模块,负责采集数据源的数据,将数据发送给Framework。
    (2)Writer:数据写入模块,负责不断向Framework取数据,并将数据写入到目的端。
    (3)Framework:用于连接Reader和Writer,作为两者的数据传输通道,并处理缓冲、流控、并发、数据转换等核心技术问题。

  3. DataX运行流程
    下边就来看一下DataX生命周期时序图:
    在这里插入图片描述
    (1)Job:单个数据同步的作业,称为一个Job,一个Job启动一个进程。
    (2)Task:根据不同数据源的切分策略,一个Job会切分为多个Task,Task是DataX作业的最小单元,每个Task负责一部分数据的同步工作。
    (3)TaskGroup:Scheduler调度模块会对Task进行分组,每个Task组称为一个Task Group。每个Task Group负责一定的并发度运行其所分得的Task,单个Task Group的并发度为5。
    (4)Reader -> Channel -> Writer:每个Task启动后,都会固定启动Reader -> Channel -> Writer的线程来完成同步工作。

  4. DataX调度决策思路
    (1)需求说明:
    用户现在提交一个DataX作业,并且配置了总的并发度为20,目的是对有100张分表的MySQL数据源进行同步。
    (2)DataX调度决策思路是:
    1)DataX的Job会根据分库分表切分策略,将同步工作分成100个Task。
    2)根据配置的总并发度为20,以及每个TaskGroup的默认并发度为5,DataX计算共需要分配4个Task Group。
    3)4个Task Group平分100个Task,每个Task Group负责运行25个Task。

  5. DataX与Sqoop对比

功能DataXSqoop
运行模式单进程多线程MR
分布式不支持,可以通过调度系统来规避支持
流控有流控功能需要定制
统计信息已有一些统计,上报需定制没有,分布式的数据收集不方便
数据校验在core部分有校验功能没有,分布式的数据收集不方便
监控需要定制需要定制
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值