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-获取上次同步时间,拖入表输入和设置变量,效果如下图:

kettle 实现mysql单表增量同步

 

表输入1内容如下:

kettle 实现mysql单表增量同步

 

设置变量2内容如下:maxtime为表输入1中获取到的同步时间

kettle 实现mysql单表增量同步

 

二、根据同步时间查询满足条件的源数据库中的数据,并新增到目标库对应表中,效果如下图:

新建转换,命名为:2-根据同步时间查询满足时间数据

kettle 实现mysql单表增量同步

 

表输入1内容如下图:

kettle 实现mysql单表增量同步

 

字段选择2内容如下:

kettle 实现mysql单表增量同步

 

数据对应内容如下:

kettle 实现mysql单表增量同步

 

三、新增本次同步时间

 

新建转换:3-新增同步时间

kettle 实现mysql单表增量同步

四、新建作业。

作业效果如下:

kettle 实现mysql单表增量同步

温馨提示:

双击start可设置定时运行:

kettle 实现mysql单表增量同步

同步乱码解决办法:

kettle 实现mysql单表增量同步

 

 

 

相关文章: