Datax安装及使用文档
DataX是一个在异构的数据库/文件系统之间高速交换数据的工具,实现了在任意的数据处理系统(RDBMS/Hdfs/Local filesystem)之间的数据交换,由淘宝数据平台部门完成。
DataX插件分为Reader和Writer两类。Reader负责从数据源端读取数据到Storage(交换空间),Writer负责将Storage中的数据写入到数据目的端。Storage可以适配不同种类的Reader和Writer,从而实现数据同步.
目前DataX版本已经提供的Reader插件如下:
1、 hdfsreader : 支持从hdfs文件系统获取数据。
2、mysqlreader: 支持从mysql数据库获取数据。
3、 sqlserverreader: 支持从sqlserver数据库获取数据。
4、 oraclereader : 支持从oracle数据库获取数据。
5、 streamreader: 支持从stream流获取数据(常用于测试)
6、httpreader : 支持从http URL获取数据。
提供的Writer插件如下:
1、 hdfswriter :支持向hdbf写入数据。
2、 mysqlwriter :支持向mysql写入数据。
3、 sqlserverwriter:支持向sqlserver写入数据。
4、 oraclewriter :支持向oracle写入数据。
5、 streamwriter :支持向stream流写入数据。(常用于测试)
DataX架构模式
DataX框架内部通过双缓冲队列、线程池封装等技术,集中处理了高速数据交换遇到的问题,提供简单的接口与插件交互,插件分为Reader和Writer两类,基于框架提供的插件接口,可以十分便捷的开发出需要的插件。
比如想要从oracle导出数据到mysql,那么需要做的就是开发出OracleReader和MysqlWriter插件,装配到框架上即可。并且这样的插件一般情况下在其他数据交换场合是可以通用的。
官网地址:https://www.python.org/downloads/ 下载安装,并做好环境变量配置
DataX工具包下载地址:http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz,
下载解压,Datax的目录结构如下:
Cmd命令:python I:/datax/bin/datax.py I:/datax/job/job.json 通过python先执行Datax工具的datax.py文件,再执行job.json配置的任务进行数据同步。
我把这个工具迁移到一台windows主机上使用时候看到控制台友好的中文提示居然都变成了乱码了。官方也给出了解决方案:
chcp 65001
执行该操作后,代码页就被变成UTF-8了。但是,在窗口中仍旧不能正确显示UTF-8字符。
在命令行标题栏上点击右键,选择"属性"->"字体",将字体修改为True Type字体"Lucida Console",然后点击确定将属性应用到当前窗口。
# yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel #安装openjdk
标准方式配置环境变量:
# vim /etc/profile
将下面的三行粘贴到 /etc/profile中:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.121-0.b13.el7_3.x86_64
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
# yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
# wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz
安装在/usr/local/python3(具体安装位置看个人喜好)
创建目录:
# mkdir -p /usr/local/python3
# tar -zxvf Python-3.6.1.tgz
# cd Python-3.6.1
# ./configure --prefix=/usr/local/python3
# make && make install
注:参考https://www.cnblogs.com/kimyeee/p/7250560.html
下载datax,解压缩,赋755权限,及运行样例同步作业命令
# wget http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz
# tar -zxvf datax.tar.gz -C /usr/local/
# chmod -R 755 /usr/local/datax/*
# cd /usr/local/datax/bin
# python datax.py ../job/job.json
可以通过命令查看配置模板如下:
# python datax.py -r {YOUR_READER} -w {YOUR_WRITER}
例如:
# python datax.py -r mysqlreader -w oraclewriter
数据源为mysql数据库,数据目的端为oracle数据库,下图显示内容:job的相关模板,以及两个参数文档链接。
mysql数据传输到oracle
编写business.json配置文件
将编写好的配置文件放入datax工具的job目录
Cmd命令执行配置文件,实现数据同步
python I:/datax/bin/datax.py I:/datax/job/business.json
成功同步了6条记录!