【工具】Datax的基本概念(初识ETL工具)

汝之观览,吾之幸也!本文主要讲解Datax工具的概念,架构,以及部署使用说明

一、基础引导

1、什么是ETL

ETL全称为Extract Transform Load,是一种数据仓库技术,其中三个英文单词分别对应三个数据处理操作的中文名称:抽取(Extract)、转换(Transform)以及加载(Load)。因此,ETL的实际含义是将数据经过抽取、清洗转换之后加载到数据仓库的过程。
在这里插入图片描述

2、Datax

DataX是由阿里巴巴研发并开源的一个异构数据源离线同步工具,技术人员能够通过DataX实现不同数据源之间的同步。
这里所指的数据源既包括关系型数据库、NoSQL数据存储、无结构化数据存储、时间序列数据库,同时也包含了阿里的云数仓数据存储。
DataX是阿里云DataWorks数据集成的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX实现了包括MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS等各种异构数据源之间高效的数据同步功能

二、Datax的架构

DataX这套工具采用的是离线数据同步的方式,其框架为Framework + plugin。
数据同步的步骤即是将数据的读取、写入操作抽象成为由Reader/Writer插件进行处理步骤,最后纳入到整个同步框架中。

  • Reader:Reader为数据采集模块,负责采集数据源的数据,将数据发送给Framework。
  • Writer: Writer为数据写入模块,负责不断向Framework取数据,并将数据写入到目的端。
  • Framework:Framework用于连接reader和writer,作为两者的数据传输通道,并处理缓冲,流控,并发,数据转换等核心技术问题。
1、Job
  • Job:运行在JobContainer容器中,这是所有任务的Master,负责初始化、分割、调度、运行、回收、监视和报告,但是它不进行实际的数据同步操作。
  • JobContainer:Job执行器,它负责Job全局分割、调度、前置语句和后置语句等工作。在Yarn里与JobTracker相似。
    Job是DataX用来描述从一个源到目标端的同步作业,它是DataX数据同步的最小业务单位。例如:将一张MySQL表与ODPS(OpenDataProcessingService)的一个表的特定分区进行同步。
2、Task
  • Task:将Job分割成最小化的执行单元。例如:阅读一个包含1024个Task的MySQL分类表的Job,将其分为1024个Task,并以数个并行执行。
  • TaskGroup:描述了一组任务集。执行同一TaskGroupContainer的Task集合称为TaskGroup。
  • TaskGroupContaine:负责执行一组任务,就像Yarn中的TaskTracker那样。
    简单地说,Job拆分为Task,在框架所提供的容器中分别执行,插件仅需实现Job和Task逻辑
3、Channel

DataX 会单独启动一条线程运行运行一个 Task,而 Task 会持有一个 Channel,用作 Reader 与 Writer 的数据传输媒介,DataX 的数据流向都是按照 Reader—>Channel—>Writer 的方向流转。

4、Transformer

DataX 的 transformer 模式同时还提供了强大的数据转换功能,DataX 默认提供了丰富的数据转换实现类,用户还可以根据项目自身需求,扩展数据转换。
在这里插入图片描述

三、下载部署

1、方法一

直接下载DataX工具包:datax压缩包
下载后解压至本地某个目录,DataX即安装完成
进入bin目录,即可运行同步作业:

$ cd  {YOUR_DATAX_HOME}/bin
$ python datax.py {YOUR_JOB.json}

自检脚本:python {YOUR_DATAX_HOME}/bin/datax.py {YOUR_DATAX_HOME}/job/job.json

2、方法二

下载DataX源码,自主编译:datax源码地址
在这里插入图片描述

下载压缩包后解压后进行maven编辑

$ cd {DataX_source_code_home}
$ mvn -U clean package assembly:assembly -Dmaven.test.skip=true

打包成功,日志显示如下:
在这里插入图片描述
打包成功后的DataX包位于{DataX_source_code_home}/target/datax/datax/,结构如下:
在这里插入图片描述

四、其他

1、修改源码

因为有些数据源同步可能会遇到格式不匹配的问题,这时可以对相应的reader与writer做修改,然后maven编译即可。后续会更新具体的源码修改例子

2、gitee地址

因为github地址国内会有反应慢连不上的问题,提供gitee地址
Datax的gitee地址

3、参考网址

ETL工具-Datax

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值