kettle實戰


1.mysql->mysql(完全同字段數據同步)

  當然,實際此種情況當然可以選擇navicat

  1)打開spoon,連接資源庫(推薦)

  2)新建轉換,之后在主對象樹新建數據庫連接並右鍵共享(統一數據源管理)

  3)拖入一個表輸入,配置連接信息,獲取SQL語句,完成表輸入配置(無變量情況)

  

 

 

     4)拖一個表輸出(需要在目的庫中先建表),選擇目標表,獲取字段,輸入字段映射

    

 

 

 

    5)運行轉換,查看日志

2.mysql->mysql(目的庫增加來源、系統時間兩個字段)

  如果按照常規的使用自定義常量數據,將會報錯如下:

  

 

 

   根據網友提示,使用核心對象->轉換->增加常量:

  

 3.簡單數據增量同步

  基本參考:https://blog.csdn.net/aganliang/article/details/84995294

  此方式的弊端,參考上述鏈接。此方式有個缺陷是每個表都需要一個表來記錄加載時間,可以優化為一個總表匯總

  通過增加設置常量等組件,不過SQL語句等就需要寫死一些表名了,也不利於拓展

  1)首先新建一個表用於記錄同步時間(此處采用和資源庫相同的庫保存此表)

CREATE TABLE `etl_time_actor` (
`last_load_time`  datetime NULL DEFAULT '1970-01-01 00:00:00' COMMENT '上次同步時間' ,
`curent_load_time`  datetime NULL COMMENT '當前時間' 
)
COMMENT='etl同步時間'
;

 2)第一個轉換用於將當前時間內存入current_load_time字段中:

 

   

 

     

  // 通過current_load_time這個表字段來進行判斷

 

   3).第二個轉換用於抽取增量數據

    首先第一個轉換設置的時間:

    

 

 

     然后通過參數提取增量數據(時間從前一步讀取)

    

    注意要勾選替換變量!

 

     最后插入增量數據(選擇裁剪表則會對數據進行清空,再插入)

    

 

 

 

 

   4)第三個轉換,將上次加載時間設置為本次時間,方便下次做增量

     

   5)這樣我們將幾個轉換串起來,增量提取簡易版就算完成了

    

4.簡單同步到hive

   參考之前隨筆建立hive連接:https://www.cnblogs.com/jiangbei/p/9372275.html

  注意使用后台nohub啟動:

    nohup  hive --service hiveserver2 &

  請注意需要關閉namanode和datanode的防火牆!

  簡單的拉個輸入輸出:

    


免責聲明!

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



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