1. 程式人生 > >kettle在win環境下安裝部署

kettle在win環境下安裝部署

1、Kettle概念 
Kettle是一款國外開源的ETL工具,純java編寫,可以在Window、Linux、Unix上執行,綠色無需安裝,資料抽取高效穩定。 
Kettle 中文名稱叫水壺,該專案的主程式設計師MATT 希望把各種資料放到一個壺裡,然後以一種指定的格式流出。 
Kettle這個ETL工具集,它允許你管理來自不同資料庫的資料,通過提供一個圖形化的使用者環境來描述你想做什麼,而不是你想怎麼做。 
Kettle中有兩種指令碼檔案,transformation和job,transformation完成針對資料的基礎轉換,job則完成整個工作流的控制。 
2、下載和部署 
下載kettle壓縮包,因kettle為綠色軟體,解壓縮到任意本地路徑即可. 
下載kettle包,並解壓

http://community.pentaho.com/projects/data-integration/

壓縮包:(這裡使用的是Kettle7.0版本) 
這裡寫圖片描述

3、Kettle環境配置 
3.1安裝JDK(略) 
3.2測試JDK安裝成功(略) 
強調:kettle7.0版本,必須配套使用JDK1.7及以上版本。 
3.3執行Kettle 
解壓之後Windows下找到$KETTLE_HOME/spoon.bat,雙擊執行. 
這裡寫圖片描述
歡迎介面如下圖所示: 
這裡寫圖片描述

這裡寫圖片描述

4、Kettle元件介紹與使用 
4.1 Kettle使用 
Kettle提供了資源庫的方式來整合所有的工作,; 
1)建立一個新的transformation,點選儲存到本地路徑,例如儲存到G:/etltest下,儲存檔名為Trans,kettle預設transformation檔案儲存後後綴名為ktr; 
2)建立一個新的job,點選儲存到本地路徑,例如儲存到G:/etltest下,儲存檔名為Job,kettle預設job檔案儲存後後綴名為kjb;

這裡寫圖片描述

4.2 元件樹介紹

4.2.1 Transformation的主物件樹和核心物件分別如下圖:

這裡寫圖片描述

這裡寫圖片描述

Transformation中的節點介紹如下: 
主要物件樹:選單列出的是一個transformation中基本的屬性,可以通過各個節點來檢視。 
DB連線:顯示當前transformation中的資料庫連線,每一個transformation的資料庫連線都需要單獨配置。 
Steps:一個transformation中應用到的環節列表 
Hops:一個transformation中應用到的節點連線列表 
核心物件選單列出的是transformation中可以呼叫的環節列表,可以通過滑鼠拖動的方式對環節進行新增: 
Input:輸入環節 
Output:輸出環節 
Lookup:查詢環節 
Transform:轉化環節 
Joins:連線環節 
Scripting:指令碼環節

4.2.2 Job的主物件樹和核心物件分別如下圖:

這裡寫圖片描述

這裡寫圖片描述

主要物件樹:選單列出的是一個Job中基本的屬性,可以通過各個節點來檢視。 
DB連線:顯示當前Job中的資料庫連線,每一個Job的資料庫連線都需要單獨配置。 
Job entries/作業專案:一個Job中引用的環節列表。 
核心物件選單:列出的是Job中可以呼叫的環節列表,可以通過滑鼠拖動的方式對環節進行新增。 
每一個環節可以通過滑鼠拖動來將環節新增到主視窗中。 
並可通過shift+滑鼠拖動,實現環節之間的連線。

4.2.3 kettle的簡單使用

DB連線 
我們可以看到轉換的主物件樹和核心物件區域,然後我們新增一個DB連線。 
選擇“主物件樹”,雙擊“轉換”標籤下的“DB連線”會彈出一個配置視窗。填入連線名稱,選擇連線型別,配置資料庫設定,然後測試下配置是否正確。 
由於kettle沒有將所有資料庫的Driver檔案整合,所以如果想連線指定的資料庫,需要自己下載JDBC驅動,放入指定的lib目錄下。新增完JDBC驅動後,必須重啟kettle才能正確載入驅動。

這裡寫圖片描述

點選“核心物件”標籤頁中的“輸入”,選擇“表輸入”拖到“轉換”區域。

這裡寫圖片描述

雙擊“表輸入”圖示彈出表輸入對話方塊,填入步驟名稱,選擇資料庫連線,點選“獲取SQL查詢語句”,或者直接寫入SQL語句,填寫附件資訊,點選“預覽”按鈕檢視執行結果,沒有錯誤,點選“確認”關閉對話方塊。

這裡寫圖片描述

這裡寫圖片描述

點選“核心物件”—“輸出”,選擇“Excel輸出”拖入到轉換區,雙擊Excel輸出圖示,彈出對話方塊,選擇檔名和其它附加引數,點選確認。

這裡寫圖片描述

這裡寫圖片描述

點選輸入表的圖示,同時按下shift鍵,再點選輸出檔案,將兩者連線起來。然後雙擊Excel輸出進行配置。

這裡寫圖片描述

這裡寫圖片描述

最後一步就是執行kettle指令碼,點選工具欄的播放箭頭即可。

這裡寫圖片描述

點選“啟動”開始轉換,在轉換過程中會出現轉換的資訊,如下圖所示。

這裡寫圖片描述

這裡寫圖片描述

完成轉換後,我們可以在Excel輸出目錄中檢視轉換結果。

這裡寫圖片描述

注:時間欄位轉換到Excel為空,修改SELECT語句中使用TO_CHAR轉換成字串,例如:to_char(start_time,’yyyy-mm-dd HH24:MM:SS’) as start_time. 
注:Excel(2007之前版本)中的記錄不能超過65535條,否則會自動關閉檔案,導致轉換失敗。 
至此,一個簡單的資料遷移指令碼,從Mysql資料庫匯出資料到EXCEL檔案中就大功告成了。