kettle初探

     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

相關文章
相關標籤/搜索