kettle 實現mysql單表增量同步

奮鬥小天使發表於2020-11-20

kettle 實現單表增量同步

實現增量同步整體分為三個步驟:(以mysql資料庫為例,其他資料庫同理,本人親測可用,若有不足,歡迎留言指出

1、獲取上次同步時間。

2、查詢上次同步時間以外的資料,並新增到目標庫中。

3、記錄本次同步時間,為下次同步使用。

一、獲取上次同步時間

新建同步時間記錄表,記錄每次同步的時間和同步結果,建表sql如下:

CREATE TABLE `kg_log` (
  `FD_OBJECTID` varchar(50) NOT NULL COMMENT '主鍵',
  `tbsj` datetime DEFAULT NULL COMMENT '同步時間',
  `bm` char(50) DEFAULT NULL COMMENT '表名',
  `result` char(50) DEFAULT NULL COMMENT '同步結果 1代表成功',
  PRIMARY KEY (`FD_OBJECTID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='同步時間記錄表';

新建轉換,命名為:1-獲取上次同步時間,拖入表輸入和設定變數,效果如下圖:

 

表輸入1內容如下:

 

設定變數2內容如下:maxtime為表輸入1中獲取到的同步時間

 

二、根據同步時間查詢滿足條件的源資料庫中的資料,並新增到目標庫對應表中,效果如下圖:

新建轉換,命名為:2-根據同步時間查詢滿足時間資料

 

表輸入1內容如下圖:

 

欄位選擇2內容如下:

 

資料對應內容如下:

 

三、新增本次同步時間

 

新建轉換:3-新增同步時間

四、新建作業。

作業效果如下:

溫馨提示:

雙擊start可設定定時執行:

同步亂碼解決辦法:

 

 

 

相關文章