需求
從MS Sql Server遷移數(shù)據(jù)到MySQL中
環(huán)境信息:
- Window10 64位
- pdi-ce-8.2.0.0-342
- SqlServer2017 Docker版本
- MySQL5.7.23 Docker版本
操作
軟件準(zhǔn)備
pdi-ce-8.2.0.0-342.zip版本下載
解壓出該版本秘血,運(yùn)行Sqoon.bat即可
流程配置
新建轉(zhuǎn)換
打開Kettle軟體,新建一個(gè)轉(zhuǎn)換任務(wù)凉倚,“文件”-->“新建”-->“轉(zhuǎn)換
配置SqlServer源數(shù)據(jù)庫
在“核心對(duì)象”-->“輸入”-->“表輸入”,將“表輸入”圖標(biāo)直接拖拽到右側(cè)區(qū)域
沒有SqlServer jar包導(dǎo)致JDBC測試失敗,解決方法就是下載mssql-jdbc-7.0.0.jre8.jar存入到lib目錄下奋刽。
獲取目標(biāo)表
配置“字段選擇”
過濾砌溺,轉(zhuǎn)換字段信息
雙擊“字段選擇”圖標(biāo)打開配置界面
“選擇和修改窗口”:可以修改字段名稱
“移除”:可以選擇不需要傳輸數(shù)據(jù)的列阁将,選擇后將不會(huì)傳輸此字段里的值到目標(biāo)表,我們這里選擇的是TS字段汰扭,因?yàn)榇俗侄问莟imestamp類型數(shù)據(jù)(時(shí)間戳)
“元數(shù)據(jù)”:在此可以對(duì)源數(shù)據(jù)表中的所有字段進(jìn)行轉(zhuǎn)換設(shè)置稠肘,比如類型,長度萝毛,精度项阴,字符集等,如果想一次性將源表的所有字段均加載進(jìn)來的話,點(diǎn)擊右側(cè)“獲取改變的字段”环揽。
配置“插入/更新”---目標(biāo)數(shù)據(jù)庫
新建我們需要導(dǎo)入的目標(biāo)數(shù)據(jù)庫連接略荡,按照上面的步驟教程新建連接,
“瀏覽”選擇需要導(dǎo)入數(shù)據(jù)的table
在此區(qū)域內(nèi)選擇查詢數(shù)據(jù)時(shí)依據(jù)的字段歉胶,其實(shí)也就是根據(jù)此字段來判斷兩個(gè)表中的數(shù)據(jù)是否是同一筆記錄
點(diǎn)擊“獲取和更新字段”可以在“更新字段”區(qū)加載所有字段汛兜,注意選擇是否所有字段都需要更新數(shù)據(jù),我在這里將carid的更新狀態(tài)改成了Y通今。
校驗(yàn)連接情況
出現(xiàn)報(bào)錯(cuò)信息粥谬,根據(jù)詳細(xì),檢查剛才的字段配置內(nèi)容
得到問題原因
測試執(zhí)行任務(wù)
執(zhí)行結(jié)果
源數(shù)據(jù)庫
目標(biāo)數(shù)據(jù)庫
定時(shí)任務(wù)
新建作業(yè)
部署作業(yè)
設(shè)置執(zhí)行頻率
選擇執(zhí)行任務(wù)項(xiàng)