1. Datax安装
1.1 Python环境安装
Datax需要Python2环境,先安装环境。下载地址:Python 2.7.18
安装python后(目录随意),环境变量
Path
中会有安装的python,环境变量
在cmd中
python -v
查看版本信息,能查看基本就可以了。cmd查看
1.2 下载datax
参考官网教程:
datax有打包好的,也有源码,因自带的是mysql5驱动,所以如果要换MySQL8驱动,只能下载源码。我下载的源码自己编译的。如果连接mysql5,直接下载官方的压缩包使用。
-
下载源码,导入ide,maven自动导包,直到没有报错
注意:有一些特殊的数据库驱动包是用的本地的,都在自己的项目pom文件中有目录,我导入时oscarJDBC.jar
驱动就没有,所以网盘中转载了别人找到的各个数据库驱动,放到项目中就可以了。
百度网盘:数据库连接驱动
提取码:p2a3
1. Sybase驱动: jconn3-6.0.jar 2. Sqlserver驱动: sqljdbc4-4.0.jar 3. Postgresql驱动:postgresql-0.9.3-1102-jdbc4.jar 4. oscarJDB驱动: oscarJDBC.jar 5. Oracle12C驱动: orai18n.jar ojdbc8-12.2.0.1.jar,ojdbc8.jar 6. Mysql驱动: mysql-connector-java-5.1.48.jar 7. Mongodb驱动: mongodb-driver-3.8.2.jar 8. kingbase驱动: kingbase8-8.2.0.jar 9. greenplum驱动:greenplum-jdbc-5.1.4.jar 10. Gbasse驱动: gbase-8.3.81.53.jar 11. DM(达梦)驱动: Dm7jdbcDriver16-7.6.0.165.jar,DM7jdbcDriver18.jar 12. Vertica驱动: vertica-jdbc-9.1.1-0.jar 13. DB2驱动: db2jcc-3.72.44.jar 14. Teradata驱动: terajdbc4.jar
-
更换驱动版本:在最外层pom文件中,5.1.32 --> 8.0.25
MySQL版本 -
更换驱动名字,我在eclipse中,快捷键
搜索ctrl + h
打开搜索窗口,将5的驱动替换成8的:mysql-connector-java
-->com.mysql.cj.jdbc.Driver
替换
显示替换了7处,在文件中都可以看到,可以自己点进去看看替换的地方。
替换的驱动名称 -
修改
zeroDateTimeBehavior
的值:convertToNull
-->CONVERT_TO_NULL
我不知道为什么,看别人说要替换,我就换了 -
按照官网的命令打包
打包
官网命令:mvn -U clean package assembly:assembly -Dmaven.test.skip=true
可以在 cmd中打包,我在eclipse中build的
不知道为什么,我打包出来的体积比较大,有1.17个G,官网下载打好的包只有800多M,但是也不影响使用 -
测试使用
将打好的包解压到自己的目录,使用官网给的命令测试,就用的job文件夹下job.json
文件进行测试的:
cd {YOUR_DATAX_DIR_BIN}
python datax.py ../job/job.json
需要注意一点:官网直接下载的压缩包能直接测试,但是自己打包的会报错,缺少配置,有2种方法修改:
- 方法1:去掉job中的speed的速度值byte,
-
方法2:添加core字段,在其中添加speed,
即构建的json文件中的core.transport.channel.speed.record和job.setting.speed.record需要同时进行设置或全都不设置。
修改json文件
每个字段什么意思,自己可以在官网查一下,我添加了,如下:
{
"core":{
"transport":{
"channel":{
"speed":{
"channel": 2,
"byte":10485760,
"batchSize":2048
}
}
}
},
"job": {
"setting": {
"speed": {
"byte":20971520
},
"errorLimit": {
"record": 0,
"percentage": 0.02
}
},
"content": [
{
"reader": {
"name": "streamreader",
"parameter": {
"column" : [
{
"value": "DataX",
"type": "string"
},
{
"value": 19890604,
"type": "long"
},
{
"value": "1989-06-04 00:00:00",
"type": "date"
},
{
"value": true,
"type": "bool"
},
{
"value": "test",
"type": "bytes"
}
],
"sliceRecordCount": 100000
}
},
"writer": {
"name": "streamwriter",
"parameter": {
"print": false,
"encoding": "UTF-8"
}
}
}
]
}
}
测试完结果:
测试结果
到这,datax就算完成了,可以使用了
2. Datax-web安装
提一下,datax-web
是在datax
的基础上使用的,所以要想用datax-web
,必须先安装datax
。
官方教程:
-
datax-web · GitHub
官方datax-web中也包含了datax部分教程,若datax已安装,可直接看datax-web部分
2.1 下载datax-web
直接github上下载下来源码,导入ide
2.2 运行datax-web
主要包括2个运行项目,datax-admin
和datax-executor
- 在mysql中创建
datax_web
数据库,执行/datax-web/bin/db/datax_web.sql
文件,导入数据库 - 修改
datax-admin
中的数据库连接,将配置文件中的变量都变成固定值,有好多,具体其他的请参考官网。
配置文件 - 修改
datax-executor
配置文件中job文件位置和datax位置
配置文件2 - 依次运行
datax-admin
--datax-executor
,启动好以后就可以访问了
- 地址:
http://127.0.0.1:8080/index.html
- 账号:
admin
- 密码:
123456
注意:启动可能会报错,缺少hadoop文件,主要是少了winutils
工具,虽然不影响使用,还是要解决一下。下载以下文件,配置环境变量即可:
hadoop-2.6.5百度网盘-链接:
提取码:xjq3
若版本不对,可以选择其他版本。转载其他人的:
winutils.png
各版本hadoop百度网盘-链接:
提取码:8jfi
添加HADOOP_HOME
环境变量,Path中也加入,如下图:
环境变量
Path
- datax-web使用
初次使用datax-web需要配置几个东西
- 5.1 添加项目,将datax执行的任务加到所属项目,方便管理,实质作用不大,但任务多了,好查找
- 5.2 配置数据库,各种用到的数据源都添加到里面,用的时候选择已添加的数据源
不要用local host!!!千万不要用,用127.0.0.1就可以了
-
5.3 配置执行器,主要是为了识别datax位置
配置项 - 5.4 任务管理
接下来是最主要的部分了,在 任务管理 项中,任务管理也是分3步完成:创建任务模板--任务构建--任务管理。
datax执行- 任务模板,主要配置执行
datax
的一些规则:路由策略、定时器、启动参数等等 - 任务构建,就是生成
datax
使用的json文件,用datax-web
主要就是因为他能自动生成这个:
按它的步骤一步步选择就行,基本能看懂,选择表和字段,在第四步时注意顺序:
顺序
生成的Json文件可能有小问题,无法执行,其实和datax自己打包有关,自己打的包json文件需要speed同时有或同时没有,我直接去掉了,先试试
修改json -
任务管理
在这里执行或修改已经构建完成的任务
我试着执行了一个Oracle --> Mysql的转换。
执行任务
- 任务模板,主要配置执行
-
5.5 日志管理
任务执行过程中,可以在这里查看日志和结果
日志管理
日志记录
由日志可以看出,我执行的Oracle --> Mysql的任务,有25733316条数据,速度22772rec/s,用了差不多20分钟
网友评论