ETL工具kettle入門
ETL(Extract-Transform-Load的縮寫,即資料抽取、轉換、裝載的過程),對於企業或行業應用來說,我們經常會遇到各種資料的處理,轉換,遷移,所以瞭解並掌握一種etl工具的使用,必不可少。kettle是純java編寫,支援圖形化的GUI設計介面,然後可以以工作流的形式流轉,在做一些簡單或複雜的資料抽取、質量檢測、資料清洗、資料轉換、資料過濾等方面有著比較穩定的表現,其中最主要的我們通過熟練的應用它,減少了非常多的研發工作量,提高了我們的工作效率。
1、Kettle概念
Kettle是一款國外開源的ETL工具,純java編寫,可以在Window、Linux、Unix上執行,綠色無需安裝,資料抽取高效穩定。
Kettle 中文名稱叫水壺,該專案的主程式設計師MATT 希望把各種資料放到一個壺裡,然後以一種指定的格式流出。
Kettle這個ETL工具集,它允許你管理來自不同資料庫的資料,通過提供一個圖形化的使用者環境來描述你想做什麼,而不是你想怎麼做。
Kettle中有兩種指令碼檔案,transformation和job,transformation完成針對資料的基礎轉換,job則完成整個工作流的控制。
2、Kettle組成
3、下載 安裝 執行
安裝 需求環境:
kettle需要jre1.5及以上版本,可以通過oracle官網免費下載;
kettle無需安裝,直接解壓zip檔案到指定的資料夾。在Lunix作業系統上,需要執行以下指令碼:
cd Kettle
chmod +x *.sh
執行
kettle中的一個圖形使用者介面叫spoon,spoon可以設計和執行轉換和作業。
在windows中執行spoon.bat,在Lunix系統中執行spoon.sh;
Spoon是一個圖形設計工具,用來設計和測試資料交換處理流程,也可以通過命令列(終端)執行處理流程。
在spoon中設計作業和轉換,kettle提供兩種方式儲存:資源庫和檔案;
如果你選擇資源庫,spoon第一次啟動時需要建立資源庫;選擇檔案方法,作業儲存檔案是的副檔名是KJB,轉換檔案的副檔名為KTR,為了簡化學習,下面教程採用後者。
3、HelloWorld 示例
Kettle使用
Kettle提供了資源庫方式的方式來整合所有的工作,但是因為資源庫移植不方便,所以我們選擇沒有資源庫;
1)建立一個新的transformation,點選 儲存到本地路徑,例如儲存到D:/etltest下,儲存檔名為EtltestTrans,kettle預設transformation檔案儲存後後綴名為ktr;
2)建立一個新的job,點選 儲存到本地路徑,例如儲存到D:/etltest下,儲存檔名為EtltestJob,kettle預設job檔案儲存後後綴名為kjb;
- 建立轉換
在檔案->新建裝換。
新建轉換後在左邊的主物件樹中建立DB連線用以連線資料庫。如圖所示:
建立資料庫連線的過程與其他資料庫管理軟體連線資料庫類似。
注意:在資料庫連結的過程中,可能會報某個資料庫連線找不到的異常。那是因為你沒有對應的資料庫連結驅動,請下載對應驅動後,放入kettle的lib資料夾。
- 簡單的資料表插入\更新
(1)新建表插入
在左邊的面板中選擇“核心物件”,在核心物件裡面選擇“輸入->表輸入”,用滑鼠拖動到右邊面板。如圖所示:
雙擊拖過來的表,可以編輯表輸入。
選擇資料庫連線和編輯sql語句,在這一步可以點選預覽,檢視自己是否連線正確。
(2)通過插入\更新輸出到表。
在左邊面板中選擇核心物件、選擇“輸出->插入\更新”如圖所示:
編輯插入更新:
首先:表輸入連線插入更新。
選中表輸入,按住shift鍵,拖向插入更新。
然後:雙擊插入更新,編輯它。
到這裡基本上,這個轉換就要做完了,可以點選執行檢視效果,看是否有誤,這個要先儲存了才能執行,可以隨意儲存到任何一個地方。
- 建立作業
使用作業可以定時或週期性的執行轉換,新建一個作業。並從左邊面板拖入start 和轉換。
雙擊start可以編輯,可以設定執行時間等等
點開裝換,可以設定需要執行的轉換任務,比如可以執行上面我們做的轉換,XXX.ktr
最後點選執行即可。
到這裡,一個簡單的通過作業排程的kettle就算做完了。