kettle的應用組件 、流程組件、查詢組件、連接組件、統計組件、映射組件、腳本組件

1、應用是轉換裏面的第五個分類。應用都是一些工具類。

1.1、替換NULL值就是把null轉換爲其它的值。NULL值不好進行數據分析

1.2、寫日誌主要是在調試的時候使用,把日誌信息打印到日誌窗口。

2、流程是轉換裏面的第六個分類。流程主要用來控制數據流程和數據流向。

2.1、Switch/case讓數據流從一路到多路。

2.2、過濾記錄讓數據流從一路到兩路。

2.3、空操作一般作爲數據流的終點。在kettle的sample例子中經常使用,但是實際開發中很少使用。

2.4、中止是數據流的終點,如果有數據到這裏,將會報錯。用來校驗數據的時候使用。

3、查詢是轉換裏面的第七個分類。查詢是用來查詢數據源裏的數據併合併到主數據流中。

3.1、HTTP client是使用GET的方式提交請求,獲取返回的頁面內容。

3.2、自定義常量數據是用來生成一些不變的數據。

指定常量數據。

3.3、數據庫查詢就是數據庫裏面的左連接。左連接就是兩張表執行左關聯查詢,把左邊的表數據全部查詢出來。

3.4、數據庫連接,可以執行兩個數據庫的查詢,和單參數的表輸入。

3.5、流查詢,在查詢前把數據都加載到內存中,並且只能進行等值查詢。

4、連接是轉換裏面的第八個分類。連接是結果集通過關鍵字進行連接。

4.1、合併記錄是用於將兩個不同來源的數據合併,這兩個來源的數據分別爲舊數據和新數據,該步驟將舊數據和新數據按照指定的關鍵字匹配、比較、合併。主要用於新舊數據的對比,非常好使的哦!

  1)、需要設置的參數:
    1.1)、舊數據來源:舊數據來源的步驟。
    1.2)、新數據來源:新數據來源的步驟。
  2)、標誌字段:設置標誌字段的名稱,標誌字段用於保存比較的結果,比較結果有下列幾種。
    2.1)、 "identical",舊數據和新數據一樣。
    2.2.)、"changed" ,數據發生了變化。
    2.3.)、"new", 新數據中有而舊數據中沒有的記錄。
    2.4)、 "deleted",舊數據中有而新數據中沒有的記錄。
  3)、關鍵字段:用於定位兩個數據源中的同一條記錄。
    3.1)、比較字段:對於兩個數據源中的同一條記錄中,指定需要比較的字段。
    3.2)、合併後的數據將包括舊數據來源和新數據來源裏的所有數據,對於變化的數據,使用新數據代替舊數據,同時在結果裏用一個標示字段,來指定新舊數據的比較結果。
  4)、注意:
    4.1)、舊數據和新數據需要事先按照關鍵字段排序。
    4.2)、舊數據和新數據要有相同的字段名稱。

4.2、記錄關聯,就是對兩個數據流進行笛卡爾積操作。

4.3、記錄集連接就像數據庫的左連接、右連接、內連接、外連接。注意:在進行記錄集連接之前,應該要對記錄集進行排序。

5、統計是轉換裏面的第十三個分類。統計是提供數據的採樣和統計功能。

5.1、分組是按照某一個或某幾個進行分組,同時可以將其餘字段按照某種規則進行合併。注意:分組之前數據應該進行排序!

6、映射是轉換裏面的第十八個分類。映射是用來定義子轉換,便於封裝和重用。

6.1、映射(子轉換),是用來配置子轉換,對子轉換進行調用的一個步驟。子轉換可以讓相同的業務功能進行重用,抽取出來,方便進行調用。

6.2、映射輸入規範,是輸入字段,由調用的轉換輸入。

6.3、映射輸出規範是向調用的轉換輸出所有列,不做任何處理。

7、腳本是轉換裏面的第七個分類。腳本就是直接通過程序代碼完成一些複雜的操作。

7.1、Javascript腳本,就是使用javascript語言通過代碼編程來完成對數據流的操作。JS中有很多內置函數,可以在編寫JS代碼時查看。

存在兩種不同的模式:不兼容模式和兼容模式。不兼容模式:是默認的,也是推薦的。兼容模式:兼容老版本的kettle。

 1 1)、javascript腳本-獲取字段
 2 不兼容模式:
 3 myVar = FieldName;
 4 
 5 兼容模式:根據字段類型的不同,使用不同的方法:
 6 myVar = FieldName.getString();
 7 myVar = FieldName.getNumber();
 8 
 9 
10 2)、javascript腳本-給字段賦值
11 不兼容模式:直接使用字段名,如
12 FieldName = myVar;
13 
14 兼容模式:使用 
15 FieldName.setValue(myVar);
16 
17 
18 3)、javascript腳本-在腳本中使用java類
19 不兼容模式:
20 var myVar = new java.lang.String(“pentahochina.com”);
21 
22 兼容模式:
23 var myVar = new Packages.java.lang.String (“pentahochina.com”);

Javascript腳本,就是使用javascript語言通過代碼編程來完成對數據流的操作。

7.2、java腳本就是使用java語言通過代碼編程來完成對數據流的操作。內置了很多函數可以直接使用。

  Java腳本Main,Main函數對應一個processRow()函數,processRow()函數是用來處理數據流的場所!

7.3、執行SQL腳本可以執行一個update語句,用來更新某個表中的數據。

 

作者:別先生

博客園:https://www.cnblogs.com/biehongli/

如果您想及時得到個人撰寫文章以及著作的消息推送,可以掃描上方二維碼,關注個人公衆號哦。

 

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