1、datax 介绍安装
1.1 简单介绍
DataX是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。
DataX本身作为离线数据同步框架,采用Framework + plugin架构构建。将数据源读取和写入抽象成为Reader/Writer插件,纳入到整个同步框架中。
- Reader:Reader为数据采集模块,负责采集数据源的数据,将数据发送给Framework。
- Writer: Writer为数据写入模块,负责不断向Framework取数据,并将数据写入到目的端。
- Framework:Framework用于连接reader和writer,作为两者的数据传输通道,并处理缓冲,流控,并发,数据转换等核心技术问题。
DataX3.0六大核心优势:可靠的数据质量监控、丰富的数据转换功能、精准的速度控制、强劲的同步性能、健壮的容错机制、极简的使用体验
1.2 安装环境
- Linux(windows 实测也可)
- JDK(1.8以上,推荐1.8)
- Python(推荐Python2.6.X,2.7 实测也可)
- Apache Maven 3.x (服务器上也不装、只用来编译datax)
1.3 支持数据库类型
类型 | 数据源 | Reader(读) | Writer(写) | 文档 |
---|---|---|---|---|
RDBMS 关系型数据库 | MySQL | √ | √ | 读 、写 |
Oracle | √ | √ | 读 、写 | |
SQLServer | √ | √ | 读 、写 | |
PostgreSQL | √ | √ | 读 、写 | |
DRDS | √ | √ | 读 、写 | |
通用RDBMS(支持所有关系型数据库) | √ | √ | 读 、写 | |
阿里云数仓数据存储 | ODPS | √ | √ | 读 、写 |
ADS | √ | 写 | ||
OSS | √ | √ | 读 、写 | |
OCS | √ | √ | 读 、写 | |
NoSQL数据存储 | OTS | √ | √ | 读 、写 |
Hbase0.94 | √ | √ | 读 、写 | |
Hbase1.1 | √ | √ | 读 、写 | |
Phoenix4.x | √ | √ | 读 、写 | |
Phoenix5.x | √ | √ | 读 、写 | |
MongoDB | √ | √ | 读 、写 | |
Hive | √ | √ | 读 、写 | |
Cassandra | √ | √ | 读 、写 | |
无结构化数据存储 | TxtFile | √ | √ | 读 、写 |
FTP | √ | √ | 读 、写 | |
HDFS | √ | √ | 读 、写 | |
Elasticsearch | √ | 写 | ||
时间序列数据库 | OpenTSDB | √ | 读 | |
TSDB | √ | √ | 读 、写 |
2、datax简单配置
2.1 模板生成
a) 安装jdk、maven、python
b) 上传解压datax 工具包
c) 编译datax(源码安装,非源码安装不需此步)
d) 自检 {YOUR_DATAX_HOME}为服务器datax工具所在路径
e) 模板生成,python datax.py -r {YOUR_READER} -w {YOUR_WRITER},然后将控制台生成的模板,保存为json文件。示例:从stream读取数据并打印到控制台
2.2 参数介绍
2.3 例子一(mysql->oracle)
根据模板编写mysql2oracle.json 具体代码入下
生成job的json配置文件后,执行该job
完成后,控制台会打印出日志。
2.4 例子二(mysql->mongodb)**
根据模板编写mysql2mongo.json具体代码入下
生成job的json配置文件后,执行该job
完成后,控制台会打印出日志。
3、datax 注意事项
- 配置文件为JSON格式,注意括号的使用及闭合;
- 必须按照模板提供Key-Value配置,禁止自定义Key值;
- 针对mysql、oracle reader ,table 可以是单个或多个,但必须保证是该value为集合形式,且表结构一致;
- 输出日志所在路径为 {your_datax_path}\log\{date}\
- 注意各类参数的含义及组合使用;
- 如非本机数据,注意数据库服务的启停状态和相应端口开闭状态;
- 增量抽取需注意“where”的使用;
- 出现数据乱码,需注意字符集的配置;
- Mysql数据库的date、datetime、timestamp 注意转换
如有其他配置的问题,请参考官方文档:https://github.com/alibaba/DataX
4、datax-web 介绍安装
DataX Web是在DataX之上开发的分布式数据同步工具,提供简单易用的 操作界面。
安装要求:
- Java 8+,maven3+
- Python2.7(支持Python3需要修改替换datax/bin下面的三个python文件,替换文件在doc/datax-web/datax-python3下)
- Environment: MacOS, Windows,Linux
- Database: Mysql5.7+
安装步骤(liunx为例):
1). 下载datax-web安装包 ;
2). 编译打包(官方提供的tar包跳过),
\$ mvn clean install
执行成功后将会在工程的build目录下生成安装包,build/datax-web-{VERSION}.tar.gz ;
3). 解压build/datax-web-{VERSION}.tar.gz ;
4). 执行一键安装脚本,./bin/install.sh ;
5). 如果你的服务上安装有mysql命令,在执行安装脚本的过程中则会出现以下提醒:
按照提示输入数据库地址,端口号,用户名,密码以及数据库名称,大部分情况下即可快速完成初始化。 如果服务上并没有安装mysql命令,则可以取用目录下/bin/db/datax-web.sql脚本去手动执行,完成后修改相关配置文件 [ /modules/datax-admin/conf/bootstrap.properties]
6). 安装完成之后,在项目目录: /modules/datax-admin/bin/env.properties 配置邮件服务(可跳过), 此文件中包括一些默认配置参数,例如:server.port, python.path等,需按照注释进行配置;另外在/modules/datax-execute/bin/env.properties,也需对PYTHON_PATH进行配置,此项的值为datax.py 所在位置,建议使用绝对路径。
7). 一键启动所有服务:
./bin/start-all.sh
单一地启动某一模块服务:
./bin/start.sh -m {module_name}
8). 一键取消所有服务:
./bin/stop-all.sh
单一地停止某一模块服务:
./bin/stop.sh -m {module_name}
5、datax-web 简单使用
1)、 登录,启动服务后,打开 http://{应用服务器IP}:{端口号默认为9527/index.html
- 用户名:admin
- 密码 :123456
2). 操作流程如下:
6、datax-web 注意事项
- 该应用要求mysql版本 >= 5.7及以上;
- 该应用一键部署时会默认生成一条执行器记录,如需新的执行器可自行配置;
- 任务构建成功后,默认不开启执行调度;
- 任务一旦生成,再进行编辑需对页面json进行修改,此时需特别注意格式和括号闭合情况;
- 任务json配置会对数据源密码进行加密;
- 应用的端口号可以进行修改,注意端口的开闭状态;
- 初次进入图形化界面,需先配置datax执行器,建议手工配置,注册节点为[ip]:[port],如本机默认为127.0.0.1:9999。
来源:oschina
链接:https://my.oschina.net/fenglinyuxi/blog/4939287