kettle介紹
kettle是一個開源的ETL工具,純java代碼編寫,可以在Windows、linux、unix系統上運行
綠色無需安裝,高效的完成數據抽取轉換加載。
1、kettle存儲方式
xml形式存儲
以資源庫方式存儲(數據庫資源庫、文件資源庫)
2、kettle設計
轉換:tranform,完全針對數據的基礎進行轉換
作業:job:整個工作流的控制
區別:
作業是步驟流,轉換是數據流,這就是job和tranform最大的區別
作業的每個步驟,必須等到前面的步驟執行完畢,后面的步驟才會執行,而轉換會一次性把所有
控件先啟動(一個控件對應一個線程)
3、kettle組成
3.1 spoon.bat/spoon.sh 勺子:一個圖形化界面,可以讓我們用圖形化的方式開發tranform和job
3.2 pan.abt/pan.sh 煎鍋: 利用pan來調用tranform
3.3 kitchen.bat/kitchen.sh 廚房: 利用kitchen命令來調用job
3.4 Carte.bat/Carte.sh : 菜單: 輕量級的web服務器,用於建立遠程的ETL服務器
kettle安裝部署
1、現在網上下載好安裝包
官網地址:https://community.hitachivantara.com/s/article/data-integration-kettle
2、直接解壓,運行Spoon.bat就可以啟動了
在此之前 需要配置jdk環境變量
到此kettle工具就安裝好了
入門案例 - kettle實現單表數據遷移
1、連接數據庫驅動
在運行之前,我們需要下載對應數據庫的jar包導入到Kettle的lib目錄下,比如我們需要把oracle遷移到mysql,
那就需要oracle和mysql兩個jar包, 我用的是這里兩個:
2、配置kettle轉換
雙擊打開spoon.bat,在左側主對象菜單欄,新建一個轉換,命名為abcd,如下圖:
3、配置oracle和mysql連接
在DB連接一欄,右擊新建連接,配置數據庫連接
注意主機名稱盡量不要填localhost
點擊測試,顯示成功即為配置完成
4、配置遷移步驟
在左側菜單欄【轉換】里面,選擇【核心對象】,選中輸入下將【表輸入】拖拽到右側空白區域。
雙擊你拖進來的表輸入,修改“步驟名稱”,選擇源數據,點擊獲取【獲取SQL查詢語句】,選擇你想同步的表,
點擊確定后就可以了。當然也可以自己寫sql語句,點擊獲取SQL查詢語句 選擇一張你要遷移的表數據
點擊預覽可以查看要遷移的數據。
接下來配置表輸出,在左側菜單欄【轉換】里面,選擇【核心對象】,選中將【表輸出】拖拽到右側空白區域。
雙擊表輸出,配置要遷移的目標表,我這里兩邊數據庫字段一樣,故而可以不用修改,如圖:
接下來配置字段選擇,在左側菜單欄【轉換】里面,選擇【核心對象】,選中將【字段選擇】拖拽到右側空白區域。
雙擊字段選擇,選擇列映射,匹配源字段和目標字段是否一致,不一致的原因可能是字段類型不一。
點擊Add,然后點擊確定
ctrl+s保存文件,到這里一個簡單的轉換就配置完成了。
5、開始遷移數據
手動運行,點擊下圖圈圈里面的按鈕
點擊啟動,日志級別這里可以選擇錯誤日志,這樣只記錄錯誤信息
轉換輸出欄如下圖:
最后檢測兩邊表,如記錄數count(*)、表中數據對比等沒問題的話表示轉換完成。