最近在剛開始玩kettle,場景:表emp爲存儲數據的表,表empcopy爲需要獲取同步數據的表。這兩張表都有時間類型,結構相同。表結構如下:
CREATE TABLE `empcopy` (
`empno` int(11) DEFAULT NULL,
`ename` varchar(50) DEFAULT NULL,
`job` varchar(50) DEFAULT NULL,
`mgr` int(11) DEFAULT NULL,
`hiredate` datetime NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
`sal` decimal(7,2) DEFAULT NULL,
`comm` decimal(7,2) DEFAULT NULL,
`deptno` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
表emp中有數據, empcopy中沒有數據 。
具體kettle的操作看截圖:
第一步:empcopy表輸入,並獲取empcopy表中時間的最大值,注意這個sql
第二步:從empcopy表中,獲取到最大時間值以後,那這個時間去和emp表的時間對比,如果emp表中的時間比上一步傳來的是時間值大(empcopy表中的時間最大值),則說明是後期新增上去的,也就是我們需要同步的數據 ,kettle操作如下;
第三步:將同步過後的數據輸出表,其實這個輸出表和empcopy表是相同的,kettle操作如下;
基本的過程就完成了,這個只支持新增,如果emp表有刪除、和修改操作,目前我還在研究,如果有想法的可以一起學習一下。