数据同步工具之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设计理念
    数据同步工具之DataX理论_第1张图片

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

  3. DataX运行流程
    下边就来看一下DataX生命周期时序图:
    数据同步工具之DataX理论_第3张图片
    (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对比

功能 DataX Sqoop
运行模式 单进程多线程 MR
分布式 不支持,可以通过调度系统来规避 支持
流控 有流控功能 需要定制
统计信息 已有一些统计,上报需定制 没有,分布式的数据收集不方便
数据校验 在core部分有校验功能 没有,分布式的数据收集不方便
监控 需要定制 需要定制

你可能感兴趣的:(数据开发,大数据,数据同步工具)