Kettle 安裝使用
1、環境準備
1.1安裝java JDK
1)首先到官網上下載對應JDK包,基於其他系統應用共享jdk,建議jdk版本1.8以上
2)安裝JDK;
3)配置環境變量
4)測試jdk安裝成功
2、安裝
2.1、下載軟件
進入如下鏈接:
https://community.hitachivantara.com/docs/DOC-1009855
下拉到如下頁面點擊圈住的鏈接並按照提示到sourceforge裏下載:
如下圖,等會即可選擇目錄下載
或則直接輸入如下下載鏈接選擇版本進行下載:
https://sourceforge.net/projects/pentaho/files/
2.2、安裝軟件
2.2.1、windows環境
將解壓下載好壓縮文件到指定目錄,如: F:\skyCloudData\data-integration,即可完成安裝.
進入Kettle程序主目錄(即之前解壓後的目錄),點擊Spoon.bat即可打開Kettle.
如果出現如下界面則啓動成功:
2.2.2、Linux環境
將解壓下載好壓縮文件到指定目錄,如: /export/hadoop/data-integration,即可完成安裝.
進入Kettle程序主目錄(即之前解壓後的目錄),sh spoon.sh即可啓動kettle
如果出現如下圖所示的錯誤,則需要安裝Xmanager
Xmanager下載地址:
http://down-ww3.newasp.net/pcdown/soft/soft1/xmanager6.cn.rar
下載Xmanager解壓安裝完之後,重新執行spoon.sh
啓動如出現下圖提示,可能由於Xmanager客戶端沒有啓動,重新執行spoon.sh即可:
啓動成功如下圖所示:
操作Xmanager時xshell可能會出現中文亂碼:
在當前xshell連接打開屬性設置,設置如下圖所示編碼即可
3、軟件使用
以下爲Windows環境下kettle的使用,linux環境在使用時有依賴錯誤,調試中。。。
3.1 Kettle的使用
3.1.1 創建保存
新建按鈕:
打開轉換:
打開資源庫,選擇已保存的作業雙擊打開
保存按鈕:
紅色框中左側爲保存按鈕,
紅色框中右側爲另存爲,以新文件名保存,
3.1.2 轉換
例:
生成記錄:
步驟名稱 -- 可以自定義;
限制 – 表示生成的記錄數;
定義完可以進行數據預覽
增加序列:
增加序列:相當於自定義一個等差數列
步驟名稱和值得名稱都自定義;
起始值 – 等差數列的起始值;
增長根據 – 等差數列的公差,每一項與它的前一項的差等於同一個值,這個值既是增長根據;
計算器:
計算器中利用各種計算函數對傳進來的值進行計算:
*注意:在純加和計算時,僅支持字符串(String)類型和 數值類型,誤選其他的會包類型錯誤
計算器組件支持日期函數,對日期進行計算
Concat fields:
該組件對保留的字段通過分隔符(Separator)進行組合:year_month(2019-11)
值映射:
通過該組件將選中的字段中出現的值進行映射,替換成指定值
Excel輸出:
文件設置:上一步生成的數據可以輸出到Excel文件中,點擊顯示字段名稱,可以顯示Excel文件保存的路徑及自定義的文件名稱;
內容設置:對輸出到Excel表進行內容設置,可以將字段作爲表頭進行輸出,並進行工作簿命名;
字段設置:點擊獲取字段按鈕,顯示所有將要輸出的字段,可以進行刪除操作,刪除的字段不會輸出到Excel表中
表輸出:
在表輸出時,選擇數據庫連接,選項爲定義好的數據庫連接;
目標表:1、點擊瀏覽可以在當前數據庫連接中選擇;
2、可以自定義表名,然後點擊下方的SQL按鈕,顯示建表語句,點擊執行即可在當前數據庫中創建表;
3、當傳入的數據字段名稱或類型與當前選中的目標表存在差異,點擊SQL按鈕會生成相關的update語句,點擊執行即可完成表結構的修改
執行:
3.1.3 作業
例:
開始組件: 可以設置作業定時調度
作業的過程中,可以添加上文的轉換過程,也可以添加另一個作業,成功作爲結束
作業過程中也可以添加具體的作業任務:
作業的執行
3.2、kettle在使用中碰到的問題
1、表數據遷移重複執行會造成數據重複,與表的主鍵唯一原則衝突
2、kettle數據傳輸編碼
3、在執行中報錯,對任務進行修改完確認正確後,仍報相同錯誤,可能由於緩存原因,需要清除緩存:
4、數據庫遷移:
1)、建表時可能會出現如圖所示錯誤:
在代碼執行建表語句時結尾添加:ENGINE=MyISAM DEFAULT CHARSET=utf8 即可解決問題:
2)、如果表數據爲空的話,報錯空指針
5、傳輸的數據亂碼問題
如上圖中文部分可能出現亂碼,編輯spoon.bat文件,添加jvm啓動參數-Dfile.encoding=UTF-8,重啓kettle即可
文本輸出時可以設置文件格式及編碼,如下圖
4、使用優化
1、mysql表輸出的時候出現減速的原因可能是因爲網絡鏈接的屬性設置
在此處添加參數:
useServerPrepStmts=false
rewriteBatchedStatements=true
useCompression=true
如圖:
2、kettle 允許線程多開
右鍵點擊組件,選擇‘改變開始複製的數量’選項,修改複製數量,點擊確定
3、也可以適當的提高數據集的大小
此處未改,不同的MySQL數據庫版本好似有數據傳輸限制會報Prepared statement contains too many placeholders
4、每次表輸出的提交量
更改大小視機器的內存大小改變,
5、kettle還可以併發處理job