Pan使用文檔
1.什么是Pan?
Pan是可以執行轉換的程序,轉換可以使Spoon設計出來的ktr格式文件也可以是資源庫里的。通常轉換都是以一定間隔時間去計划執行的(通過PDI企業版資源庫計划功能,或者第三方工具像Cron和windows任務計划功能)。
2.安裝
第一步安裝Oracle公司的java 1.7以上運行環境。之后,選擇一個版本下載並解壓 PDI software: pdi-ce-VERSION.zip壓縮包,在解壓文件夾里面你會發現許多文件(廢話)。
當你使用Unix風格運行環境(Solaris,Linux,OSX,...),需要給shell腳本執行權限,可以執行下面的命令讓kettle文件夾下所有的shell腳本有執行權限;
cd data-integration chmod +x *.sh
2.1啟動Pan
為了在不同平台使用,Kettle提供了不同的啟動方式:
- Pan.bat :windows 平台運行
- pan.sh :Unix平台和OSX平台運行
Pan能夠在安裝有Java 1.7以上的任何平台運行。
3.命令行操作選項
以下是你可以使用的命令行操作選項。
重要提示:
- 在windows平台上,在選項中使用(“-”)減號和等號(“=”)有問題,所以從2.2.2開始,新增加選項中可以使用斜線(“/”)和冒號(“:”);
- 斜線后面跟的是選項字段
- 如果選項值中存在空格,使用單引號或者雙引號將他們包起來,看下面的例子了解更多。
/option:value
以下為有效的選項。
3.1顯示版本信息
-version
這個選項顯示了Kettle核心二進制文件(kettle.jar)的版本。也顯示了編譯版本號以及編譯時間等等。
3.2啟動XML文件
-file=filename
這個選項啟動定義好的XML文件(.ktr:Kettle的轉換文件)
3.3命名參數
-param
你可以命名一個參數並賦值,舉個例子:-param:FOO=value
-listparam
列出制定指定轉換中所有的命名參數(名字,默認值以及描述)
3.4設置日志文件
-log=Logging Filename
指定日志文件,默認是標准輸出。
3.5設置日志等級
-level=Logging Level
這個等級選項可以設置在運行轉換的日志等級。以下是可以取的值:
- Error:只顯示錯誤信息
- Nothing:不做任何日志輸出
- Minimal:僅僅最小輸出
- Basic:基本信息輸出,默認日志級別
- Detailed:詳細日志輸出
- Debug:調試使用,非常詳細
- RowLevel:行級別日志,會產生大量日志
3.6選擇一個資源庫
-rep=Repository name
使用資源庫名字連接至資源庫,同時你也需要指定下面的操作選項 --user , --pass 以及 --trans 。你也可以在環境變量中指定 KETTLE_REPOSITORY 這些操作選項值。
3.7設置資源庫的用戶名
-user-Username
這個是你想要連接的資源庫的用戶名,你也可以在環境變量中指定 KETTLE_USER。
3.8設置資源庫密碼
-pass=Password
這是你想連接的資源庫的用戶密碼,同樣你也可以在環境變量中指定 KETTLE_PASSWORD。
3.9選在資源庫中的轉換啟動
-trans=Transformation Name
利用這個操作選項可以選擇資源庫中的轉換。
3.10列出資源庫中所有目錄
-listdir=Y
在使用 -dir 時,打印出資源庫目錄下所有子目錄。
3.11設置資源庫目錄
-dir=directory
指定資源庫目錄,資源庫目錄可以像是這樣的:
- 根目錄:/
- 子目錄:/production/Dimensions/
從2.2.2版本開始,分隔符 / 可以被用到各種平台。
3.12列出資源庫下所有轉換
-listtrans=Y
在使用 -dir 時,列出資源庫目錄下所有的轉換。
3.13列出所有可用的資源庫
-listrep=Y
列出所有的已經定義的資源庫
3.14導出整個資源庫
-exprep=filename.xml
這個操作選項導出整個資源庫至一個XML文件,回復成資源庫需要使用Spoon的資源庫管理器,詳情參見Spoon文檔。
3.15日志禁止寫入資源庫
-norep=Y
如果你已經設置了環境變量 KETTLE_REPOSITORY, KETTLE_USER, KETTLE_PASSWORD, 你可以阻止 pan 將日志寫入到資源庫。舉個例子,如果你想執行一個xml文件格式的轉換。
4.路徑
在運行以下例子之前,請確保你在data-integration目錄下。如果你將這些腳本文件放到批處理或者shell腳本中,將會很容易修改目錄為安裝目錄。
如果data-integration被安裝在 D:\ drive
D: cd \data-integration
如果data-integration 被安裝在Unix系統的 /product 目錄下:
cd /product/data-integration/
5.從文件運行轉換
從windows平台運行一個轉換文件
pan.bat /file:"D:\Transformations\Customer Dimension.ktr" /level:Basic
在Linux平台上運行一個轉換文件
pan.sh -file="/PRD/Customer Dimension.ktr" -level=Minimal
6.從資源庫運行一個轉換
這個例子是在Windows平台從資源庫運行一個轉換(一行輸入沒有返回...)
pan.bat /rep:"Production Repository" /trans:"update Customer Dimension" /dir:/Dimensions/ /user:matt /pass:somepassword123 /level:Basic
7.重定向輸出
如果你不想輸出出現在屏幕,更想輸出到日志文件,你可以使用重定向。這個例子添加pan的輸出到一個不斷增長的日志文件。
pan.sh -file="/PRD/trans.ktr" -level=Minimal >> /LOG/trans.log
這個例子將pan輸出每次重寫進文件
pan.bat /file:C:\PRD\trans.ktr /level:Basic > C:\LOG\trans.log
8.返回碼
pan 基於異常事件返回相應的錯誤碼:
- 0:轉換運行正常
- 1:處理過程中出錯
- 2:在加載/運行轉換過程中發生意外錯誤
- 3:無法解析和初始化此轉換
- 7:無法從XML或資源庫加載轉換
- 8:加載步驟或插件時出錯(主要是加載其中一個插件時出錯)
- 9:Command line usage printing
9.定時調度(scheduling)
9.1在windos平台上定時調度轉換
最好的方法是先在DOS提示符下測試命令。然后,您可以使用Windows任務調度程序啟動此命令。Windows 2000版本之后有一個GUI,通過控制面板可以做到這一點。它也可以使用命令行來做這個:
at 23:30 /every:Monday,Wednesday,Friday "D:\update_dimensions.bat"
查看定時調度命令清單(To see a list of the scheduled commands simply type):
at
9.2在Unix平台上定時調度一個轉換
首先創建一個shell腳本來運行所有的轉換,然后你只需要定時調度運行這個shell腳本就可以了。
在Unix平台最簡單的定時調度命令方式是使用cron 表達式,你可以使用下面的命令:
crontab -e
然后你可以在命令中輸入你要運行的時間(Then you can enter the time at which the command needs to be run as well as the command
on a single line in the text file that is presented)
- Minute:分鍾,0-59
- Hour:小時,0-23
- Month day:天,1-31
- Month:月, 1-12
- Weekday:周, 0-6, 0=星期天
你可以為每一個參數指定一個數字以上的值,兩個數字使用連字符 - 分隔起來,這意味着是一個數字范圍。如果你使用逗號分隔兩個數字,這意味着可以取不同的值。如果你使用 * 代替一個數字,意味着可以取任意的小時、分鍾、天、月或者周。
因此,如果你想在每周工作日每個小時在15分和45分時更新dimensions ,可以輸入下面的cron命令:
# # Launches the update of the dimensions in the warehouse # 15,45 * * * 1-5 /PROD/update_dimensions.sh #