kettle基礎概念的學習

參考書籍:Pentaho Kettle Solutions中文版。因爲最近不斷的使用kettle,隨着不斷深刻使用,遇到的問題愈來愈多,發現腦子那點貨根本不夠用,因此根據閱讀把一些概念記錄一下,方便本身觀看,也但願讀看到帖子的有所幫助。數據庫

一、轉換。Kettle在運行轉換的時候,根據用戶的設置,能夠將數據以不一樣的方式發送到多個數據流中。
注意:有兩種基本發送方式,即分發和複製,分發相似於發撲克牌,以輪流的方式將每行數據只發給一個數據流。複製是將一行數據發給全部數據流。緩存

二、轉換。轉換以並行的方式執行,就須要一個能夠串行執行的做業來處理這些操做(做業以串行執行)。服務器

三、轉換。是ETL解決方法中最主要的部分,它處理抽取,轉換,加載各階段各類對數據行的操做。轉換包括一個或者多個步驟(step),如讀取文件,過濾輸出行,數據清洗或者將數據加載到數據庫。轉換裏面的步驟經過跳(hop)來鏈接,跳定義了一個單向通道,容許數據從一個步驟向另外一個步驟流動。在Kettle裏面,數據的單位是行,數據流就是數據行從一個步驟到另外一個步驟的移動。數據流的另外一個同義詞就是記錄流。注意,轉換裏面還能夠包含註釋,註釋一個小的文本框,能夠放在轉換流圖的任何位置。註釋的主要目的是使轉換文檔化,方便本身之後熟悉和學習。數據結構

四、轉換。轉換的注意點,步驟是轉換裏面的基本組成部分,它以圖標的方式圖形化的展現。一個步驟有以下幾個關鍵特性。步驟須要有一個名字,且這個名字在轉換範圍裏惟一。步驟將數據寫到與之相連的一個或者多個輸出跳(outgoing hops),再傳送到跳的另外一端的步驟。對另外一端步驟來講這個跳就是一個輸入跳(incoming hops),步驟經過輸入跳接受數據。大多數的步驟均可以有多個輸出跳。一個步驟的數據發送能夠被設置爲輪流發送和複製發送。輪流發送是將數據行依次發給每個輸出跳(這種方式也稱爲round robin),複製發送是將所有數據行發送給全部輸出跳。在運行轉換的時候,一個線程運行一個步驟和步驟的多份拷貝,全部的步驟的線程幾乎同時運行,數據行連續的流過步驟以前的跳。併發

五、轉換的跳。跳(hop)就是步驟之間帶箭頭的連線,跳定義了步驟之間的數據通路。跳其實是兩個步驟之間的被成爲行集(row set)的數據行緩存(行集的大小能夠在轉換的設置裏面定義)。當行集滿了,向行集寫數據的步驟將中止寫入,直到行集裏又有了空間。當行集空了,從行集讀取數據的步驟中止讀取,直到行集裏面又有了可讀的數據行。注意,當建立新跳的時候,須要記住跳在轉換裏面不能循環。由於在轉換裏面每一個步驟都依賴前一個步驟獲取字段值。分佈式

六、轉換的並行。跳的這種基於行集緩存的規則容許每一個步驟都由一個獨立的線程運行,這樣併發程度最高。這一規則也運行數據以最小消耗內存的數據流的方式來處理。在數據倉庫裏面,咱們常常要處理大量數據,因此這種併發低耗內存的方式也是ETL工具的核心需求。對於kettle,不可能定義一個執行順序,不可能也沒有必要肯定一個起點和終點。由於全部步驟都以併發方式執行。當轉換啓動後,全部步驟都同時啓動,從他們的輸入跳中讀取數據,並把處理過的數據都寫到輸出跳,直到輸入跳裏面再也不有數據,就停止步驟的運行。當全部的步驟都停止了,整個轉換就停止了,也就是說,從功能的角度來看,轉換也有明確的起點和終點。注意,轉換裏面的步驟幾乎是同時啓動的,全部若是想要一個任務沿着指定的順序執行,那麼就要使用做業(job)了。工具

七、轉換的設計。當設計轉換的時候有幾個數據類型的規則須要注意。行級裏全部行都應該有一樣的數據結構。就是說,當從多個步驟向一個步驟裏面寫數據的時候,多個步驟輸出的數據行應該有相同的結構,即字段相同,字段數據類型相同,字段順序相同。字段元數據不會在轉換中發生變化。意思就是說,字符串不會自動截取長度以適應指定的長度,浮點數也不會自動取整以適應指定的精度。這些功能必須經過一些指定的步驟來完成。默認狀況下,空字符串"",被認爲與NULL相同。性能

八、做業(job)。做業按照必定的順序完成,由於轉換以並行方式執行的,就須要一個能夠串行執行的做業來處理一系列按照順序完成的操做。一個做業包括一個或者多個做業項,這些做業項以某種順序來執行。做業執行順序由做業項之間的跳(job hop)和每一個做業項的執行結構來決定。如同轉換,做業裏面也能夠包括註釋。
學習

九、做業項。做業項是做業的基本構成部分。如同轉換的步驟,做業項也可使用圖標的方式圖形化展現。做業項的注意點。新步驟的名字應該是惟一的,可是做業項能夠有影子拷貝。這樣能夠把一個做業項放在不一樣的位置。這些影子拷貝里的信息都是相同的,編輯一份拷貝,其餘拷貝也會隨之修改。在做業項之間能夠傳遞一個結果對象(result object)。這個結果對象裏包含了數據行,它們不是以流的方式來傳遞的。而是等一個做業項執行完了,再傳遞給下一個做業項。默認狀況下,全部的做業項都是以串行方式執行的,只是在特殊狀況下,以並行方式執行。spa

十、kettle啓動腳本介紹(window版本)。

Spoon.bat,集成開發環境。提供了一個圖形化用戶界面,用於建立或者編輯做業或者轉換。Spoon也能夠用於執行或者調試做業或者轉換,它也有性能監控的功能。
Kitchen.bat,做業的命令行運行程序,能夠經過Sheel腳原本調用。Scheel腳本通常經過調度程序,如cron或者Windwos計劃任務,來調度執行。
Pan.bat,轉換的命令運行程序,和Kitchen同樣經過Sheel腳原本調用。執行轉換而不是做業。
Carte.bat,輕量級的Http服務器(基於Jetty),後臺運行,監聽Http請求來運行一個做業。Carte用於分佈式和協調跨機器執行做業,也就是Kettle的集羣。

 

待續......

相關文章
相關標籤/搜索