当前位置: 首页 > news >正文

一、DataX简介

DataX简介

  • 一、什么是DataX
  • 二、DataX设计
  • 三、支持的数据源
  • 四、框架设计
  • 五、运行原理
  • 六、DataX和Sqoop对比

一、什么是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部分有校验功能没有,分布式的数据手机不方便
监控需要定制需要定制
http://www.lryc.cn/news/298602.html

相关文章:

  • 直播app开发,技术驱动的实时互动新纪元
  • Apache POI的介绍以及使用示例
  • npm config set registry https://registry.npm.taobao.org 这个设置了默认的镜像源之后如何恢复默认的镜像源
  • 算法沉淀——位运算(leetcode真题剖析)
  • React18原理: 再聊Fiber架构下的时间分片
  • 【玩转408数据结构】线性表——线性表的顺序表示(顺序表)
  • 图像处理之《黑盒扰动的可逆噪声流鲁棒水印》论文阅读
  • 一个Vivado仿真问题的debug
  • C#阿里云消息列队推送消息
  • Stable Diffusion 模型下载:majicMIX sombre 麦橘唯美
  • WindowsLinuxmeterepreter渗透命令回顾
  • KingSCADA实现按钮点击效果
  • Python编程-二万字浅谈装饰器原理与装饰器设计模式和函数式编程案例讲解
  • 基于Zigbee的智能温室大棚系统(附详细使用教程+完整代码+原理图+完整课设报告)
  • 【Web】Redis未授权访问漏洞学习笔记
  • 【JAVA WEB】 css背景属性 圆角矩形的绘制
  • Docker-现代化应用部署的利器
  • 「优选算法」:山脉数组的峰顶索引
  • 网络安全红队基础建设与介绍
  • Java语法学习反射
  • 【MySQL】操作库 —— 库的操作 -- 详解
  • Rust安装——Win10
  • 【教学类-46-07】20240212立体春字1.0
  • Python语言例题集(003)
  • UE5 播放本地MP3、MP4
  • NLP_“预训练+微调大模型”模式和Prompt/Instruct模式的异同
  • 普通人应该如何使用GPT
  • pycharm像jupyter一样在控制台查看后台变量
  • Ansible command命令模块 这个模块可以直接在远程主机上执行命令,并将结果返回本主机。
  • C语言-3