2概述
設計模塊最主要的操作分為: 轉換和作業

選擇轉換和作業后就可以選擇對應主對象樹和核心對象

主對象樹大同小異


核心對象是不同的
比如轉換需要用到的CSV表輸入, 表輸入等都在這里可以選擇

而作業的核心對象是:

2.1 轉換
轉換是ETL解決方案中最主要的部分, 它處理抽取、轉換、加載各階段各中對數據行的操作。轉換1/N個步驟。
如圖, 下面是一個轉換的過程

圖中每個框都是一個步驟(step),而連接框的線就是所謂的跳(hop).
跳定義了一個單向通道, 允許數據由一個通道向另一個通道移動。在Kettle中數據的
單位是行。
步驟
步驟是轉換的基本組成部分(圖中的框框) 它有以下關鍵屬性:
1 每個步驟都有一個名字,在轉換范圍內唯一
2 每個步驟都會讀,寫數據行 (唯一的例外是生成記錄的步驟)
3 步驟將數據寫到與之相連的一個或多個輸出跳, 再傳送到跳的另一端的步驟. 對另一端步驟來說, 這個跳就是一個輸入 跳, 步驟通過輸入跳接受數據
4 大多數的步驟都可以有多個輸出跳.
【一個步驟的數據發送(輸出)可以設置為輪流發送和復制發送。輪流發送是將數據行依次發給每一個輸出跳(每個輸出獲得的輸出合起來才是完整數據),復制發送是將全部數據發給所有輸出跳(每個輸出都一樣,是全部的數據)。】
在創建跳的時候可以選擇:


5 運行轉換時,一個線程運行一個步驟和步驟的多份copy,所有步驟的線程幾乎
同時運行,數據行連續地流過步驟之間的跳。
除了上面標准的屬性,具體每個步驟根據其類型還有不同的區別。不再贅述。
轉換的跳
跳(hop)就是步驟之間帶箭頭的連線,定義了步驟之間的數據通路。跳實際是兩個步驟之間被稱為行集的數據行緩存。
當行集滿了,向行集寫數據的步驟將停止寫入,知道行集里又有了空間。當行集空了,從行集讀取數據的步驟停止讀取,直到行集里有了可讀的數據行。
注意,跳在轉換里不能循環。
並行
跳的這種基於行集緩存的規則允許每個步驟都由
一個獨立的線程運行,這樣並發程度最高。
這一規則也徐允許數據以最小消耗內存的數據流方式來處理.
對於Kettle不可能定義一個執行順序。所有步驟都以並發的方式執行:
當轉換啟動后,所有步驟同時啟動,從他們的輸入跳中讀取數據,並把處理過的數據寫到輸出跳,直到輸入跳不再有數據,就中止步驟的運行。直到數據重新進來.
當所有的步驟都中止了,整個轉換就中止了.
因為所有步驟都同時執行,從這個意義上來說, 轉換是沒有起點和終點的. 如果要一個任務沿着指定的順序執行,就要使用后面說的"作業".
數據行
數據以數據行的形式沿着步驟移動。一個數據行是多個字段的集合,字段包括以下幾種數據類型。



數據轉換
顯式數據轉換: 在字段選擇步驟中選擇轉換的數據類型.
隱私轉換就是將數據類型數據寫入數據庫的varcahr類型字段.
比如:



2.2 作業
讓一些操作按照一定的順序完成(如運行中發送錯誤的應對操作, 如驗證庫表存在等)
因為
轉換以並行方式執行, 就需要一個可以
串行執行的
作業來處理這些操作.
一個作業包括一到多個作業項, 這些作業項以某種順序來執行. 作業執行順序由作業項之間的跳和每個作業項執行結果來定.

作業項
作業項是作業的基本構成. 如同轉換的步驟.
不同之處:
1 新步驟名字是唯一的. 但作業項可以有影子拷貝. 這樣就可以把一個作業項放在多個不同的位置. 這些影子拷貝是相同的,修改了其中一份, 其余的都隨之改變.
2 作業項傳遞的是結果對象. 結果對象包含了數據行. 他們不是以流的方式實時傳遞. 而是等一個作業項執行完畢,再傳遞給下一個作業項.
3 默認情況,所有作業項都以串行執行. 值在特殊情況下才以並行執行.
因為作業順序執行作業項, 所以必須定義一個起點(叫做開始的作業項, 並且只能有一個).
作業跳
作業項之間的連接線, 定義了作業的執行路徑.
每個作業項的不同運行結果決定了作業后續的不同執行路徑.
* 無條件執行: 黑色帶鎖圖標表示. 無論上一個作業
項成功與否都執行下一個作業項.
* 為真時執行: 綠色打勾圖標表示. 上一個作業項執行為真, 才執行才可以作業項目.(一般需要無錯誤執行)
* 為假時執行: 紅色停止圖標表示. 上一個作業項執行為假或者沒有成功執行時,執行下一個作業項.
直接點擊即可切換類型:

多路徑和回溯
Kette使用一種回溯算法來執行作業里的素有作業項, 而且作業項的執行結果(真/假)也同事決定執行路徑.
回溯算法: 假設執行到一條路徑的某個節點時, 依次執行這個節點的所有子路徑, 直到沒有再可以執行的子路徑, 就退回該節點的上一個節點, 如此反復.
舉例:


並行執行
一個作業項也可以並發的方式執行后面的所有作業項:


作業項結果
作業項結果包含以下信息:
一組數據行
一組文件名...
錯誤的行數和數量..
等..
2.3 轉換或作業的元數據

2.4 數據庫連接, 資源庫
略.