Kettle是Pentaho的一個組件,主要用於數據庫間的數據遷移,到我用過的4.2版,還不支持noSQL,不知道4.4是否是支持了。java
Kettle本身有三個主要組件:Spoon,Kitchen,Pan。其中Spoon是一個圖形化的界面,用於windows的時候,先設置環境變量:pentaho_java_home,例如:C:\Program Files\Java\jdk1.7.0_25,其實就是你的java安裝目錄,1.6以上便可。windows下雙擊Spoon.bat就能夠了,界面以下:mysql
這裏我創建了資源庫,其實能夠用文件形式存儲,存儲的結構都是xml,可是我仍是以爲創建一個資源庫比較好,之後看job等狀況也比較簡單,由於數據表的可讀性比xml要好得多。創建資源庫和文件資源庫只須要把右上角的小加號點一下,就會出現以下如的界面:linux
選擇第一個就是創建數據庫版的資源庫,以後:sql
以後:數據庫
測試經過以後點擊OK就回到最開始的界面,這時候選擇test數據庫鏈接,而後出入你的工程(我是這麼叫的)ID和name,這裏要記住,由於之後kitchen調度的時候要輸入這個參數。windows
在接下來彈出的框中都點「是」,而後會出現這個界面:bash
這步會在你的用戶下創建不少表,因此最好單獨給資源庫創建一個用戶,固然這是在oracle下,mysql下和DB2下最好也採用一樣的方式,把資源庫和其餘庫分開。檢查一下:oracle
SQL> conn wings/wings@prism
已鏈接。
SQL> select count(1) from r_repository_log;工具
COUNT(1)
----------
0學習
SQL>
表已經建好了。回到最開始的界面,選擇test,點擊肯定,而後就會出現登陸對話框,用戶密碼默認都是admin,之後能夠本身改。
接下來就能夠開始用這個工具了。
其實對於簡單的數據庫數據的抽取,基本只須要轉換和做業這兩種東西。下面就是創建一個轉換的步驟:
1 點擊文件-->新建-->轉換。
2 在左側的樹狀列表中選「主對象樹」,新建DB鏈接。步驟和上面建資源庫同樣。一個目標庫一個源庫。
3 在覈心對象-->輸入這個地方拖出一個表輸入,在「輸出」目錄下拖出「表輸出」,在「轉換」處拖出一個字段選擇來,如圖:
每個對象均可以雙擊修改屬性,下面以抽取world數據庫的city表爲例。
雙擊表輸入,選擇數據庫鏈接,選擇源數據庫,而後點擊「獲取SQL查詢語句」,在彈出的對話框裏進行選擇便可,以後會變成這樣:
下面點擊表輸出:
點擊字段選擇:
這樣,一個簡單的抽取數據的轉換就完成了。執行之,點擊上面的綠色開始按鈕。
我也處在學習中,但願能夠把個人經驗分享給和我同樣的入門者。
下面是補充部分:
在一個Job或者一個trans創建好以後,就能夠創建定時任務了。若是是DS,那麼DS客戶端自己就支持schedule,可是Kettle由於沒有服務端和客戶端的概念,所以只有使用linux的crontab,其實Job自己也支持定時,可是你必須保證圖形界面一直開着,這樣並不如crontab那麼好。在命令行裏使用kettle很簡單,Job用kitchen調度,trans用pan調度。
下面是一個kitchen的調度命令:
bash /home/kettle/data-integration/kitchen.sh /rep kettle_demo /user username /pass passwd /level Minimal /dir /dirname /job jobname
rep那裏寫本身的資源庫名稱。
trans和上面同樣,略有不一樣:
bash /home/kettle/data-integration/pan.sh /rep kettle_demo /user username /pass passwd /level Minimal /dir /dirname /trans transname