Kettle基本概念

一.Kettle設計模塊

1.轉換

       轉換是ETL解決方案中最主要的部分,它處理抽取、轉換、加載各階段各種對數據行的操作。轉換包括一個或多個步驟(step),如讀取文件、過濾輸出行、數據清洗或將數據加載到數據庫。
       轉換裏的步驟通過跳(hop)來連接,跳定義了一個單向通道,允許數據從一個步驟向另一個步驟流動。

步驟

       步驟是轉換裏的基本組成部分。

轉換的跳

       跳是步驟之間帶箭頭的連線,其定義了步驟之間的數據通路。其實際上是兩個步驟之間的被稱爲行集(row set)的數據行緩存(其大小可以在轉換的設置裏定義)。

並行

       跳的這種基於行集緩存的規則允許每個步驟都由一個獨立的線程運行,這樣併發程度最高。
       不可能定義一個執行順序,因爲所有步驟都以併發方式執行:當轉換啓動後,所有步驟同時啓動,從它們的輸入跳中讀取數據,並把處理過的數據寫到輸出跳。
       如果想要一個任務沿着指定順序執行,需要用到“作業”。

數據行

       數據以數據行的形式沿着步驟移動。一個數據行是零到多個字段的集合。

數據轉換

       既可以顯式地轉換數據類型,如在“字段選擇”步驟中直接選擇要轉換的數據類型,也可以隱式地轉換數據類型,如將數值類型數據寫入數據庫中的varchar類型字段。

2.作業

       一個作業包括一個或多個作業項,其間按照某種順序來執行。作業執行順序由作業項之間的跳(job hop)和每個作業項的執行結果來決定。如下圖:


多路徑和回溯

       Kettle使用回溯算法來執行作業裏的所有作業項:假設執行到了圖裏一條路徑的某個節點時,要依次執行這個節點的所有子路徑,直到沒有再可以執行的子路徑,就返回該節點的上一節點,反覆這個過程。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章