kettle-合併記錄

1:合併記錄
   該步驟用於將兩個不同來源的數據合併,這兩個來源的數據分別爲舊數據和新數據,該步驟將舊數據和新數據按照指定的關鍵字匹配,
   比較,合併。
   需要設置的參數:
   舊數據來源:舊數據來源的步驟。
   新數據來源:新數據來源的步驟。
   標誌字段:設置標誌字段的名稱,標誌字段用於保存比較的結果,比較結果有下列幾種:
   identical:就數據和新數據一樣。
   changed:數據發生了變化。
   new:新數據中有而就數據中沒有的記錄。
   deleted:舊數據中有而新數據中沒有的記錄。
   關鍵字段:用於定位兩個數據源中的同一條記錄。
   比較字段:對於兩個數據源中的同一條記錄中,指定需要比較的字段。
   合併後的數據將包括舊數據來源和新數據來源中的所有數據,對於變化的數據,使用新數據代替舊數據,同時在結果裏用一個標識字段,
 來指定新舊數據的比較結果。
 注:
 1:新舊數據需要事先按照關鍵字排序。
 2:就數據和新數據要有相同的字段名稱。
 例如:
舊數據:
field1, field2
1, 1
2, 2
3, 3
4, 4

新數據
field1, field2
1, 1
2, 9
5, 5

設置:標誌字段是flag,關鍵字段是 field1, 比較字段是field2

合併後的數據
field1; field2; flag
1; 1; identical
2; 9; changed
3; 3; deleted
4; 4; deleted
5; 5; new

2:排序合併
   對合並後的記錄做排序,指定字段以及排序規則。
   一般在排序記錄後邊一定要跟上一個排序合併。
 https://blog.csdn.net/qq_22073849/article/details/65443846

3:記錄關聯(笛卡爾輸出)
   這個步驟允許組合輸入流中的所有行(笛卡爾輸出)
 例:
   步驟名稱:在單一轉換中必須唯一
   臨時目錄:如果想輸出更多的行,指定系統存儲臨時文件的目錄名稱。
   臨時文件前綴:生成的臨時文件的前綴。
   最大緩存大小:系統從臨時文件讀取數據的緩存大小。
   讀取的主要步驟:指定讀取最多數據的步驟名稱。
 條件:可以指定複雜的條件限制輸出行數。
   按照舊ETL工具,需要將基礎表A、表B、表C、表D,4張表的數據保存到本地數據庫,然後,再通過SQL將4張表的數據關聯到一
   張結果表,過程共產生5張表,嚴重浪費數據庫資源,以及當產生問題,增加維護難度。現使用kettle工具後,將不再需要將基礎
   表A、表B、表C、表D這4張表的數據保留到本地數據庫,大大降低數據庫的壓力。
 

4:記錄集連接
   多表的join,可以直接用sql寫入【表輸入】組件,也可以藉助kettle提供的【記錄集連接】組件,使用kettle的記錄集連接組件,首先
   必須要兩個輸入數據集是有序的,並且是根據需要join的字段排序,可以藉助kettle的【排序記錄】組件。
 步驟:
   1:首先根據【排序記錄】組件將兩個數據集需要join的字段進行排序。
   2:使用記錄集連接組件對數據集進行排序。
 注:
   1:第一個步驟爲連接的主表
   2:連接類型分爲,內鏈接,左外連接,右外連接,全外連接。
   3:兩個步驟的連接字段必須和排序記錄中的名稱一致。
 其他:
   1:步驟名稱:在單一轉換中名稱必須唯一。
   2:第一個步驟:指定要合併的第一個輸入步驟。
   3:第二個步驟:指定要合併的第二個輸入步驟。
   4:連接類型:選擇合併可用的類型。
   5:連接字段:指定要做關聯的字段。

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