kettle初探


     Kettle是Pentaho的一個組件,主要用於數據庫間的數據遷移,到我用過的4.2版,還不支持noSQL,不知道4.4是不是支持了。

     Kettle自己有三個主要組件:Spoon,Kitchen,Pan。其中Spoon是一個圖形化的界面,用於windows的時候,先設置環境變量:pentaho_java_home,例如:C:\Program Files\Java\jdk1.7.0_25,其實就是你的java安裝目錄,1.6以上即可。windows下雙擊Spoon.bat就可以了,界面如下:

      這里我建立了資源庫,其實可以用文件形式存儲,存儲的結構都是xml,但是我還是覺得建立一個資源庫比較好,以后看job等情況也比較簡單,因為數據表的可讀性比xml要好得多。建立資源庫和文件資源庫只需要把右上角的小加號點一下,就會出現如下如的界面:

      

      選擇第一個就是建立數據庫版的資源庫,之后:

      

      之后:

      

      測試通過之后點擊OK就回到最開始的界面,這時候選擇test數據庫連接,然后出入你的工程(我是這么叫的)ID和name,這里要記住,因為以后kitchen調度的時候要輸入這個參數。

     

     在接下來彈出的框中都點“是”,然后會出現這個界面:

     

      這步會在你的用戶下建立很多表,所以最好單獨給資源庫建立一個用戶,當然這是在oracle下,mysql下和DB2下最好也采用同樣的方式,把資源庫和其他庫分開。檢查一下:

      

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM