【Kettle】第一篇,Pan 的使用


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
#


免責聲明!

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



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