1. Datax安裝
1.1 Python環(huán)境安裝
Datax需要Python2環(huán)境,先安裝環(huán)境。下載地址:Python 2.7.18

安裝python后(目錄隨意),環(huán)境變量
Path中會(huì)有安裝的python,
在cmd中
python -v查看版本信息,能查看基本就可以了。
1.2 下載datax
參考官網(wǎng)教程:
datax有打包好的,也有源碼,因自帶的是mysql5驅(qū)動(dòng),所以如果要換MySQL8驅(qū)動(dòng),只能下載源碼。我下載的源碼自己編譯的。如果連接mysql5,直接下載官方的壓縮包使用。
-
下載源碼,導(dǎo)入ide,maven自動(dòng)導(dǎo)包,直到?jīng)]有報(bào)錯(cuò)
注意:有一些特殊的數(shù)據(jù)庫驅(qū)動(dòng)包是用的本地的,都在自己的項(xiàng)目pom文件中有目錄,我導(dǎo)入時(shí)oscarJDBC.jar驅(qū)動(dòng)就沒有,所以網(wǎng)盤中轉(zhuǎn)載了別人找到的各個(gè)數(shù)據(jù)庫驅(qū)動(dòng),放到項(xiàng)目中就可以了。
百度網(wǎng)盤:數(shù)據(jù)庫連接驅(qū)動(dòng)
提取碼:p2a31. Sybase驅(qū)動(dòng): jconn3-6.0.jar 2. Sqlserver驅(qū)動(dòng): sqljdbc4-4.0.jar 3. Postgresql驅(qū)動(dòng):postgresql-0.9.3-1102-jdbc4.jar 4. oscarJDB驅(qū)動(dòng): oscarJDBC.jar 5. Oracle12C驅(qū)動(dòng): orai18n.jar ojdbc8-12.2.0.1.jar,ojdbc8.jar 6. Mysql驅(qū)動(dòng): mysql-connector-java-5.1.48.jar 7. Mongodb驅(qū)動(dòng): mongodb-driver-3.8.2.jar 8. kingbase驅(qū)動(dòng): kingbase8-8.2.0.jar 9. greenplum驅(qū)動(dòng):greenplum-jdbc-5.1.4.jar 10. Gbasse驅(qū)動(dòng): gbase-8.3.81.53.jar 11. DM(達(dá)夢)驅(qū)動(dòng): Dm7jdbcDriver16-7.6.0.165.jar,DM7jdbcDriver18.jar 12. Vertica驅(qū)動(dòng): vertica-jdbc-9.1.1-0.jar 13. DB2驅(qū)動(dòng): db2jcc-3.72.44.jar 14. Teradata驅(qū)動(dòng): terajdbc4.jar -
更換驅(qū)動(dòng)版本:在最外層pom文件中,5.1.32 --> 8.0.25
MySQL版本 -
更換驅(qū)動(dòng)名字,我在eclipse中,快捷鍵
ctrl + h打開搜索窗口,將5的驅(qū)動(dòng)替換成8的:mysql-connector-java-->com.mysql.cj.jdbc.Driver
搜索
替換
顯示替換了7處,在文件中都可以看到,可以自己點(diǎn)進(jìn)去看看替換的地方。
替換的驅(qū)動(dòng)名稱 修改
zeroDateTimeBehavior的值:convertToNull-->CONVERT_TO_NULL
我不知道為什么,看別人說要替換,我就換了-
按照官網(wǎng)的命令打包
官網(wǎng)命令:mvn -U clean package assembly:assembly -Dmaven.test.skip=true
可以在 cmd中打包,我在eclipse中build的
打包
不知道為什么,我打包出來的體積比較大,有1.17個(gè)G,官網(wǎng)下載打好的包只有800多M,但是也不影響使用 測試使用
將打好的包解壓到自己的目錄,使用官網(wǎng)給的命令測試,就用的job文件夾下job.json文件進(jìn)行測試的:
cd {YOUR_DATAX_DIR_BIN}
python datax.py ../job/job.json
需要注意一點(diǎn):官網(wǎng)直接下載的壓縮包能直接測試,但是自己打包的會(huì)報(bào)錯(cuò),缺少配置,有2種方法修改:
- 方法1:去掉job中的speed的速度值byte,
-
方法2:添加core字段,在其中添加speed,
即構(gòu)建的json文件中的core.transport.channel.speed.record和job.setting.speed.record需要同時(shí)進(jìn)行設(shè)置或全都不設(shè)置。
修改json文件
每個(gè)字段什么意思,自己可以在官網(wǎng)查一下,我添加了,如下:
{
"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"
}
}
}
]
}
}
測試完結(jié)果:

到這,datax就算完成了,可以使用了
2. Datax-web安裝
提一下,datax-web是在datax的基礎(chǔ)上使用的,所以要想用datax-web,必須先安裝datax。
官方教程:
-
datax-web · GitHub
官方datax-web中也包含了datax部分教程,若datax已安裝,可直接看datax-web部分
2.1 下載datax-web
直接github上下載下來源碼,導(dǎo)入ide
2.2 運(yùn)行datax-web
主要包括2個(gè)運(yùn)行項(xiàng)目,datax-admin和datax-executor
- 在mysql中創(chuàng)建
datax_web數(shù)據(jù)庫,執(zhí)行/datax-web/bin/db/datax_web.sql文件,導(dǎo)入數(shù)據(jù)庫 - 修改
datax-admin中的數(shù)據(jù)庫連接,將配置文件中的變量都變成固定值,有好多,具體其他的請參考官網(wǎng)。
配置文件 - 修改
datax-executor配置文件中job文件位置和datax位置
配置文件2 - 依次運(yùn)行
datax-admin--datax-executor,啟動(dòng)好以后就可以訪問了
- 地址:
http://127.0.0.1:8080/index.html - 賬號:
admin - 密碼:
123456
注意:啟動(dòng)可能會(huì)報(bào)錯(cuò),缺少hadoop文件,主要是少了winutils工具,雖然不影響使用,還是要解決一下。下載以下文件,配置環(huán)境變量即可:
hadoop-2.6.5百度網(wǎng)盤-鏈接:
提取碼:xjq3
若版本不對,可以選擇其他版本。轉(zhuǎn)載其他人的:
winutils.png
各版本hadoop百度網(wǎng)盤-鏈接:
提取碼:8jfi
添加HADOOP_HOME環(huán)境變量,Path中也加入,如下圖:
環(huán)境變量
Path
- datax-web使用
初次使用datax-web需要配置幾個(gè)東西
- 5.1 添加項(xiàng)目,將datax執(zhí)行的任務(wù)加到所屬項(xiàng)目,方便管理,實(shí)質(zhì)作用不大,但任務(wù)多了,好查找
- 5.2 配置數(shù)據(jù)庫,各種用到的數(shù)據(jù)源都添加到里面,用的時(shí)候選擇已添加的數(shù)據(jù)源
不要用local host?。?!千萬不要用,用127.0.0.1就可以了 -
5.3 配置執(zhí)行器,主要是為了識別datax位置
配置項(xiàng) - 5.4 任務(wù)管理
接下來是最主要的部分了,在 任務(wù)管理 項(xiàng)中,任務(wù)管理也是分3步完成:創(chuàng)建任務(wù)模板--任務(wù)構(gòu)建--任務(wù)管理。
datax執(zhí)行- 任務(wù)模板,主要配置執(zhí)行
datax的一些規(guī)則:路由策略、定時(shí)器、啟動(dòng)參數(shù)等等 - 任務(wù)構(gòu)建,就是生成
datax使用的json文件,用datax-web主要就是因?yàn)樗茏詣?dòng)生成這個(gè):
按它的步驟一步步選擇就行,基本能看懂,選擇表和字段,在第四步時(shí)注意順序:
順序
生成的Json文件可能有小問題,無法執(zhí)行,其實(shí)和datax自己打包有關(guān),自己打的包json文件需要speed同時(shí)有或同時(shí)沒有,我直接去掉了,先試試
修改json -
任務(wù)管理
在這里執(zhí)行或修改已經(jīng)構(gòu)建完成的任務(wù)
我試著執(zhí)行了一個(gè)Oracle --> Mysql的轉(zhuǎn)換。
執(zhí)行任務(wù)
- 任務(wù)模板,主要配置執(zhí)行
-
5.5 日志管理
任務(wù)執(zhí)行過程中,可以在這里查看日志和結(jié)果
日志管理
日志記錄
由日志可以看出,我執(zhí)行的Oracle --> Mysql的任務(wù),有25733316條數(shù)據(jù),速度22772rec/s,用了差不多20分鐘

















