最近在刚开始玩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表有删除、和修改操作,目前我还在研究,如果有想法的可以一起学习一下。