圖 1‑1 PDI核心組件數據庫
Spoon是構建ETL Jobs和Transformations的工具。Spoon能夠以拖拽的方式圖形化設計,可以經過spoon調用專用的數據集成引擎或者集羣。安全
Data Integration Server是一個專用的ETL Server,它的主要功能有:服務器
功能網絡 |
描述jvm |
執行工具 |
經過Pentaho Data Integration引擎執行ETL的做業或轉換ui |
安全性spa |
管理用戶、角色或集成的安全性插件 |
內容管理命令行 |
提供一個集中的資源庫,用來管理ETL的做業和轉換。資源庫包含全部內容和特徵的歷史版本。 |
時序安排 |
在spoon設計者環境中提供管理Data Integration Server上的活動的時序和監控的服務 |
Enterprise Console提供了一個小型的客戶端,用於管理Pentaho Data Integration企業版的部署,包括企業版本的證書管理、監控和控制遠程Pentaho Data Integration服務器上的活動、分析已登記的做業和轉換的動態績效。
名稱 |
描述 |
Spoon |
經過圖形接口,用於編輯做業和轉換的桌面應用。 |
Pan |
一個獨立的命令行程序,用於執行由Spoon編輯的轉換和做業。 |
Kitchen |
一個獨立的命令行程序,用於執行由Spoon編輯的做業。 |
Carte |
Carte是一個輕量級的Web容器,用於創建專用、遠程的ETL Server。 |
圖 1‑2 PDI概念模型圖
要了解Kettle的執行分爲兩個層次:Job和Transformation。兩個層次的最主要區別在於數據傳遞和運行方式。
Transformation(轉換)是由一系列被稱之爲step(步驟)的邏輯工做的網絡。轉換本質上是數據流。下圖是一個轉換的例子,這個轉換從文本文件中讀取數據,過濾,而後排序,最後將數據加載到數據庫。本質上,轉換是一組圖形化的數據轉換配置的邏輯結構。
轉換的兩個相關的主要組成部分是step(步驟)和hops(節點鏈接)。
轉換文件的擴展名是.ktr。
Steps(步驟)是轉換的建築模塊,好比一個文本文件輸入或者一個表輸出就是一個步驟。在PDI中有140多個步驟,它們按不一樣功能進行分類,好比輸入類、輸出類、腳本類等。每一個步驟用於完成某種特定的功能,經過配置一系列的步驟就能夠完成你所須要完成的任務。
Hops(節點鏈接)是數據的通道,用於鏈接兩個步驟,使得元數據從一個步驟傳遞到另外一個步驟。在上圖所示的轉換中,它像似順序執行發生的,但事實並不是如此。節點鏈接決定了貫穿在步驟之間的數據流,步驟之間的順序不是轉換執行的順序。當執行一個轉換時,每一個步驟都以本身的線程啓動,並不斷的接受和推送數據。
注意:因此的步驟是同步開啓和運行的,因此步驟的初始化的順序是不可知的。由於咱們不能在第一個步驟中設置一個變量,而後在接下來的步驟中使用它。
在一個轉換中,一個步驟能夠有多個鏈接,數據流能夠從一個步驟流到多個步驟。在Spoon中,hops就想是箭,它不只容許數據從一個步驟流向另外一個步驟,也決定了數據流的方向和所經步驟。若是一個步驟的數據輸出到了多個步驟,那麼數據既能夠是複製的,也能夠是分發的。
Jobs(工做)是基於工做流模型的,協調數據源、執行過程和相關依賴性的ETL活動。
Jobs(工做)將功能性和實體過程聚合在了一塊兒。下圖是一個工做的例子。
一個工做中展現的任務有從FTP獲取文件、覈查一個必須存在的數據庫表是否存在、執行一個轉換、發送郵件通知一個轉換中的錯誤等。最終工做的結果多是數據倉庫的更新等。
工做由工做節點鏈接、工做實體和工做設置組成。
工做文件的擴展名是.kjb。
根據變量的做用域,變量被分爲兩類:環境變量和kettle變量。
環境變量能夠經過edit menu下面的set environment variables對話框進行設置。使用環境變量的惟一的問題是,它不能被動態的使用。若是在同一個應用服務器中執行兩個或多個使用同一環境變量的轉換,將可能發生衝突。環境變量在因此使用jvm的應用中可見。
Kettle變量用於在一個小的動態範圍內存儲少許的信息。Kettle變量是kettle本地的,做用範圍能夠是一個工做或轉換,在工做或轉換中能夠設置或修改。Set variable步驟用來設置與此變量有關的工做今後設置其做用域,如:父工做、祖父工做或根工做。
-rep : Repository name 任務包所在存儲名
-user : Repository username 執行人
-pass : Repository password 執行人密碼
-job : The name of the job to launch 任務包名稱
-dir : The directory (don''t forget the leading / or \)
-file : The filename (Job XML) to launch
-level : The logging level (Basic, Detailed, Debug, Rowlevel, Error, Nothing) 指定日誌級別
-log : The logging file to write to 指定日誌文件
-listdir : List the directories in the repository 列出指定存儲中的目錄結構。
-listjobs : List the jobs in the specified directory 列出指定目錄下的全部任務
-listrep : List the defined repositories 列出全部的存儲
-norep : Don''t log into the repository 不寫日誌
kitchen.bat 後面能夠是-也能夠是/而後再加options
Options:
/rep : Repository name
/user : Repository username
/pass : Repository password
/job : The name of the job to launch
/dir : The directory (dont forget the leading /)
/file : The filename (Job XML) to launch
/level : The logging level (Basic, Detailed, Debug, Rowlevel, Error, Nothing)
/logfile : The logging file to write to
/listdir : List the directories in the repository
/listjobs : List the jobs in the specified directory
/listrep : List the available repositories
/norep : Do not log into the repository
/version : show the version, revision and build date
/param : Set a named parameter <NAME>=<VALUE>. For example -param:FOO=bar
/listparam : List information concerning the defined parameters in the specified job.
/export : Exports all linked resources of the specified job. The argument is the name of a ZIPfile.
而options 後面能夠是=也能夠是:也能夠是空格
kitchen.bat /file d:\ 或者 -file=D:\ 或者/file:D:\等等均可以。
kitchen.bat /norep -file=D:/kettledata/mysal2orcle.kjb >> kitchen_%date:~0,10%.log
上面的含義是,使用kitchen.bat 命令來執行job文件,job文件的存放路徑是D:/kettledata/mysal2orcle.kjb,而且將執行的結果輸出到 kitchen_%date:~0,10%.log文件中。
XUL Framework是一個試圖爲不一樣UI技術提供統同樣式的項目。它的目標是使得多種UI技術(如:Swing、SWT、GWT)可以提交出一個統一的用戶接口而沒必要每次重寫描述層。XUL的常見案例有:普通對話框、可定製的菜單和工具欄、新的工具應用。
XUL是英文「XML User Interface Language」的首字母縮寫。它是爲了支持Mozilla系列的應用程序(如Mozilla Firefox和Mozilla Thunderbird)而開發的使用者界面標示語言。顧名思義,它是一種應用XML來描述使用者界面的標示語言。
(1) 加載XUL文件
(2) 添加Event Handlers
(3) 爲SWT提供菜單欄
(4) 爲菜單欄添加菜單項
PS:此次僅僅介紹了Kettle的基本概念和術語,這部分是由我同窗來完成的。Kettle應該還算比較小衆的開源軟件資料很少,但願此次的分析可以對你們有必定的幫助。大部分的分析都是本身理解的,因此有所誤差或錯誤請你們指正。接下來準備分析,Kettle的插件體系結構、轉換機制、job運行機制。