Kettle入門使用:插入/更新/數據同步


一.Kettle初步使用

雙擊Spoon.bat即可啟動,然后點擊“文件”或右鍵“轉換”,均可新建轉換

(圖1)


新建轉換后需要連接數據庫。①點擊主對象樹;②右鍵“DB連接”——新建;③選擇數據庫(本人為MySQL),Oracle同理;④選擇連接方式;⑤設置數據庫連接(別忘了第一行“連接名稱”:隨便取個名);⑥點擊“測試”,成功or失敗;⑦成功后右下角確認即可,然后“DB連接”下面就有該連接了,右鍵連接可設置為共享(下次新建連接就可以直接用)

(圖2)


點擊核心對象,可以看到很多功能,反正大部分我都不會用(苦笑臉!)所以下面只演示表的插入/更新/同步。。。。。


實現數據的插入/更新:①user表:②user_age表:③目的:將user表中的增量/更新數據同步到user_age表。
點擊“輸入”,然后將“表輸入”直接拖拽到右邊的工作框;雙擊表輸入然后依次步驟取名——選擇下之前創建的連接——再寫sql,獲取你要的數據(我這里是獲取user表所有數據)

 

點擊“輸出”,直接將“插入/更新”拖拽到右邊的工作框,同樣取個名——選擇數據庫連接——目標表選擇你需要插入/更新的表——目標表與源數據表(流)的對應關系(此處即user_age表的user_id與user表的id,可理解為外鍵關系,spoon通過比較這兩個字段來同步數據)——數據同步的對應關系(記住更新下面選擇Y,不需要同步選擇N)

 

 Shift健按住,左鍵點擊表即可延伸箭頭,創建轉換。點擊運行,會提示保存轉換(工作數據建議保存到固定文件夾,方便后續查看/使用),保存后即可運行。每個步驟上都出現綠色的“√”表示運行成功,可查看目標表數據是否同步,若出現紅色警告則說明該步驟運行失敗。


 上述轉換實際存在缺陷:只能在目標表中同步源表的插入/更新的數據,而源表刪除的數據,目標表不會刪除,即並沒完全同步(目標表和源表完全一致)。若需要完全同步,可使用“數據同步”輸出。
二.Kettle數據同步

直接上轉換圖。目的:將user表的數據完全同步到目標表(兩表保持完全一致)


 

拖拽兩個表輸入,配置如圖,因為要合並記錄(實際是對兩張表數據進行比較),所以獲取SQL獲取數據/字段等要一致。

 

合並記錄,連接中拖拽出“合並記錄”

 

 合並記錄配置:

 

①一定要注意舊數據源和新數據源的區別,

舊數據源指:需要同步的目標表,user_age表(可理解為備份表);

新數據源值:源數據,user表(可理解為業務中一直變動的表);

②標志字段:flagfield后面“數據同步”步驟需要用到,Spoon用它記錄數據的“增 刪 改”狀態,才能執行同步

③關鍵字段,兩張表數據用來對比的字段(此處user_id);

④同步的數據字段。

 

 

輸出中拖拽出“數據同步”,配置如下:

 

 

 

 
————————————————
版權聲明:本文為CSDN博主「半個蘿卜」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_40827989/article/details/81121303


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM