赞
踩
汝之观览,吾之幸也!本文主要讲解Datax工具的概念,架构,以及部署使用说明
ETL全称为Extract Transform Load,是一种数据仓库技术,其中三个英文单词分别对应三个数据处理操作的中文名称:抽取(Extract)、转换(Transform)以及加载(Load)。因此,ETL的实际含义是将数据经过抽取、清洗转换之后加载到数据仓库的过程。
DataX是由阿里巴巴研发并开源的一个异构数据源离线同步工具,技术人员能够通过DataX实现不同数据源之间的同步。
这里所指的数据源既包括关系型数据库、NoSQL数据存储、无结构化数据存储、时间序列数据库,同时也包含了阿里的云数仓数据存储。
DataX是阿里云DataWorks数据集成的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX实现了包括MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS等各种异构数据源之间高效的数据同步功能
DataX这套工具采用的是离线数据同步的方式,其框架为Framework + plugin。
数据同步的步骤即是将数据的读取、写入操作抽象成为由Reader/Writer插件进行处理步骤,最后纳入到整个同步框架中。
DataX 会单独启动一条线程运行运行一个 Task,而 Task 会持有一个 Channel,用作 Reader 与 Writer 的数据传输媒介,DataX 的数据流向都是按照 Reader—>Channel—>Writer 的方向流转。
DataX 的 transformer 模式同时还提供了强大的数据转换功能,DataX 默认提供了丰富的数据转换实现类,用户还可以根据项目自身需求,扩展数据转换。
直接下载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
下载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/,结构如下:
因为有些数据源同步可能会遇到格式不匹配的问题,这时可以对相应的reader与writer做修改,然后maven编译即可。后续会更新具体的源码修改例子
因为github地址国内会有反应慢连不上的问题,提供gitee地址
Datax的gitee地址
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。