Kettle基本使用


Kettle基本使用

Kettle的幾個子程序的功能和啟動方式

Spoon.bat    圖形界面方式啟動作業和轉換設計器。

Pan.bat      命令行方式執行轉換。

Kitchen.bat     命令行方式執行作業。

Carte.bat      啟動web服務,用於Kettle的遠程運行或集群運行。

Encr.bat     密碼加密。

 

轉換和作業

KettleSpoon.bat設計器用來設計轉換(Transformation)和作業(job)。

  • 轉換主要是針對數據的各種處理,一個轉換里可以包含多個步驟(Step)。
  • 作業是比轉換更高一級的處理流程,一個作業里包括多個作業項(Job Entry),一個作業項代表了一項工作,轉換也是一個工作項。

 

###輸入、輸出、轉換、過濾、字段選擇、連接###

 

Kettle資源庫—元數據

元數據的通用概念:

  • “描述性數據”或“數據的數據”

ETL的元數據:

  • 描述ETL要執行的任務

在Kettle里元數據的存儲方式:

  • 資源庫

    資源庫寶庫文件資源庫,數據庫資源庫

    Kettle資源庫類型可以插件擴展

  • XML文件

    .ktr轉換文件的XML的根節點必須是<transformation>

    .kjb作業XML的根節點是<job>

Kettle資源庫—資源庫類型

數據庫資源庫:

  • 把Kettle的元數據串行化到數據庫中,如R_TRANSFORMATION表保存了Kettle轉換的名稱、描述等屬性。
  • 在Spoon里創建和升級數據資源庫 

文件資源庫:

  在文件的基礎上的封裝,實現了org.pentaho.di.respositpory.Repository接口。

  是Kettle4.0以后版本里增加的資源庫類型

不使用資源庫:

  直接保存為 ktr 或 kjb 文件。

Kettle資源庫—如何選擇資源庫?

數據庫資源庫的缺點:

  • 不能存儲轉換或作業的多個版本。
  • 嚴重依賴於數據庫的鎖機制來防止工作丟失。
  • 沒有考慮到團隊,開發人員不能鎖住某個作業自己開發。

文件資源庫的缺點:

  • 對象(如轉換、作業、數據庫連接等對象)之間的關聯關系難以處理,所以刪除,重命名等操作會比較麻煩。
  • 沒有版本歷史。
  • 難以進行團隊開發。

不使用資源庫:

  使用SVN進行文件版本控制。

參考:

Kettle企業資源庫:基於Apache Jackrabbit 的CMS系統。

 

Kettle資源庫—管理資源庫

ETL開發的幾個階段:

開發、測試、確認、發布

各個階段對應的資源庫:

開發資源庫、測試(確認)資源庫、發布資源庫

各階段推進

1.從開發資源庫帶測試資源庫:

  注意命名規則。

  由一個人統一發布,避免沖突。

  兩種移植方法:斷開重連、導入/導出。

2.從測試(確認)資源庫到發布資源庫:導入/導出

不使用資源庫

  SVN版本控制,測試打tag,發布建branch 

 

Kettle資源庫—參數化

為什么要參數化:

  在資源庫之間移植作業時,因為各個階段的環境不一樣,在作業里使用的數據庫連接等元數據不能硬編碼。

參數化的幾個方法:

  • kettle.properties,文件位於java的user.home目錄下
  • 自定義properties文件,通過 屬性文件輸入 步驟讀取。
  • 使用參數表

參數表的結構

Environment  parameter_name  parameter_value  valid_from  valid_to

Dev      host_name      localhost      2011-01-01 2099-01-01

Test      host_name     192.168.12.10      2011-01-01 2013-05-01

Test      hose_name    192.168.12.11    2011-05-02 2099-01-01

 

Kettle運行方式—幾中運行方式

圖形化界面:Spoon

命令行:Pan、Kitchen

API:Kettle Java API 嵌入到其它應用

Kettle運行方式—Spoon

本地:在本地執行

遠程:在遠程服務執行,需要遠程服務器執行Carte。

  • Carte是內嵌Jetty的 http server。
  • Carte執行命令 carte localhost 80080

集群:在集群上執行,需要轉換里的某個步驟實現設置為集群方式運行。


免責聲明!

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



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