Kettle引數
引數是ETL工具使用必須了解的一個問題之一,目前Kettle傳引數有兩種方式:
1、 Arguments
Arg傳參方式是原來3.2以下版本使用的傳參方式,是通過command line來傳引數,然后使用Get System Info組件接收傳入的引數,一共可以傳十個引數,目前此種傳引數方法已經很少使用了。
(圖1)
2、 Parameters
Param引數只需要知道引數名稱然后再通過引數名稱付值就行了,引數區分大小寫。
Kitchen.bat[sh] –file=test.kjb –PARAM:STARTDATE=VALUE
3、 使用方法
對于引數的使用有兩種方法:[%%VAR%%、${VAR}]
由于這兩種引數的使用方法不同是需要看ETL程式部署的環境了,%%VAR%%使用的環境是Windows,而${VAR}使用的環境是Linux,但考慮程式移植問題一般都使用${VAR}方式,因為${VAR}方式在Windows系統環境下能夠識別。
4、 動態引數設定
動態引數可以在Job與Trans中設定,如果是在Trans中設定則需要下一步驟才能使用,如果在當前Trans中使用則會出錯。
(圖2)
5、 全域引數設定
全域引數設定是在kettle.properties檔案中配置,配置方式是鍵=值方式。
檔案路徑是在C:\Documents and Settings\[UserName]\.kettle\
腳本獲取引數語法:parent_job.getVariable("param_name");
6、 引數優先級
引數的優先級也是一個需要關心的一個問題,特別是當全域引數也有值,又動態設定了引數時,或者是Job中定義引數時,這時我們需要知道這個引數的優先級了,下面是引數優先級的一個排序。
Job本身引數à動態引數à全域引數
需要注意的是當Job本身設定了引數,并且也有全域引數,如果Job本身引數為空而全域引數不為空時,那么輸出的引數則是為空的。
? Kettle目錄腳本說明
當大家把Kettle解壓后會發現許多的腳本檔案有bat、sh檔案,下面對于這些腳本的說明與使用進行一一介紹讓大家知道這些腳本是干什么用的。
腳本名稱
腳本說明
腳本使用
Spoon.bat
啟動Kettle方法之一,也可以使用Kettle.exe啟動
雙擊腳本運行,由于大家可能在執行Job或者Trans時會出此記憶體溢位時可以通過修改此腳本的JVM大小
Pan.bat
此腳本是用來運行test.ktr檔案的,也就是Trans檔案
可以通過撰寫bat檔案來呼叫此腳本運行Trans檔案,具體使用方法請參考Pan使用方法
Kitchen.bat
此腳本是用來運行test.kjb檔案的,也就是Job檔案
可以通過撰寫bat檔案來呼叫此腳本運行Job檔案,具體使用方法請參考Kitchen使用方法
Carte.bat
此腳本是使用集群Kettle,當資料量到達了一定的級別時就需要考慮集群這一功能來分擔服務器壓力、性能等方面。
Carte使用方法
Encr.bat
此腳本是用來加密連接資料庫密碼與集群時使用的密碼
Encr使用方法
run_kettle_cluster_example.bat
此腳本是集群Kettle的一個例子
注:以上說的是bat腳本檔案而sh腳本檔案沒有說明,因為sh的使用方法與bat的使用方法基本上是一致的所以這里就不再詳細說明了。
1、 Pan使用方法
我們可以使用CMD來查看Pan可以接收哪些引數如下圖:
(圖3)
Pan實體:
Pan.bat /file=test.ktr /logfile=test.txt /param=STARTDATE=2011-04-19
2、 Kitchen使用方法
我們可以使用CMD來查看Pan可以接收哪些引數如下圖:
(圖4)
Kitchen實體:
Kitchen.bat /file=test.ktr /logfile=test.txt /param=STARTDATE=2011-04-19
3、 Carte使用方法
(圖5)
從圖上可以出Carte的具體使用方法了。
Carte實體:
Carte.bat 127.0.0.1 8080
由于集群中有一個main群集,所以需要先啟動main集群然后再啟動其它的子集群。
4、 Encr使用方法
(圖6)
圖中說明有使用encr加密有兩種用途一種是連接資料庫的密碼一種是集群時的密碼
Encr實體:
Encr.bat –kettle test
Encr.bat –carte test
(圖7)
? Kettle組件說明
由于Kettle的組件實在是太多了,這里我就不詳細說明了,大家可以訪問下面網址進行了解學習。
http://wiki.pentaho.com/display/EAI/Pentaho+Data+Integration+Steps
或者參考Kettle用戶手冊.pdf
? Kettle優化
說到優化我相信大家都喜歡問這個問題同時也是最關心的一個問題,在這提供最主要的幾種優化方案
1、根據資料量的大小設定commit size
2、根據資料量的大小設定資料抓取結果集大小
(圖8)
3、盡量把JVM設定大一點
4、啟用資料庫連接池
(圖9)
5、SQL本身的優化
6、需要注意的一些細節,比如在使用插入更新、更新、洗掉等組件時,當表中有聯合主鍵時就需要注意建立索引的順序了,如果順序不正確會導致不走索引。
? Kettle并發
對于ETL工具而言并發是一個不可缺少的一部分,因為并將帶來的是效率。
(圖10)
并發方法:
當你想要在哪一步進行并發時就右擊Job或Trans把Launch next …parallel勾上就可以了。
(圖11)
對于并發值得關注的是資料庫的連接,在使用并發功能時需要啟用資料庫連接池功能,詳情請參考Kettle連接池配置
? 手動指定.Kettle目錄
添加環境變數KETTLE_HOME=[指定.kettle目錄],由于測驗環境是xp需要指定后重啟電腦才能生效。
轉載來源:http://blog.sina.com.cn/s/blog_b82e70870101f4nq.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/11811.html
標籤:數據倉庫
上一篇:虛擬主機下使用now()得到的時間比現實慢6小時,我要怎么辦?
下一篇:求大佬幫忙看sql問題
