使用kettle多端同步数据到中央库完整示例

需求:
需要将端库A B C D中的一部分表数据同步更新到中央库tms中,定时执行该同步任务,数据量500万+,需要进行增量同步
解决方式:
一.获取所有要同步的端库连接信息列表
二.获取单个表1上次同步的时间t_time,查询所有端库中更新时间update_time在t_time之后的数据,更新/插入中央库的表1中。所有端库的表1数据同步完之后,更新表1的更新时间t_time为中央库中表1的最新更新时间
三.重复步骤二,将要同步的表所有端库表数据同步到中央库

完整示例:
一.示例表信息

// 端库连接表信息
CREATE TABLE `t_kettle_jdbc` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `jdbc_name` varchar(128) DEFAULT NULL COMMENT '连接名称',
  `jdbc_host` varchar(128) DEFAULT NULL COMMENT '主机名',
  `jdbc_username` varchar(128) DEFAULT NULL COMMENT '用户名',
  `jdbc_password` varchar(128) DEFAULT NULL COMMENT '密码',
  `jdbc_database` varchar(128) DEFAULT NULL COMMENT '数据库名称',
  `jdbc_port` varchar(128) DEFAULT NULL COMMENT '端口',
  `database_update_time` datetime DEFAULT NULL COMMENT '中央库到端分发更新时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='要同步的数据库连接 '

//  要同步的表及同步时间信息表
CREATE TABLE `t_kettle_table` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `table_name` varchar(128) DEFAULT NULL COMMENT '要同步的表名称',
  `update_time` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8 COMMENT='要同步的数据表信息 '

数据示例:
使用kettle多端同步数据到中央库完整示例_第1张图片

使用kettle多端同步数据到中央库完整示例_第2张图片

二.任务配置示例
1.所有库表同步整体job
使用kettle多端同步数据到中央库完整示例_第3张图片

2.某表数据抽取子job
使用kettle多端同步数据到中央库完整示例_第4张图片

3.某表数据抽取job
使用kettle多端同步数据到中央库完整示例_第5张图片

4.某表数据同步
两个数据流,合并记录,包括new changed deleted 此处就新增以及更新进行进行处理。删除无法通过增量合并的方式进行处理。此处删除只是更新is_deleted字段,作为更新处理。配置如下:
使用kettle多端同步数据到中央库完整示例_第6张图片

5.更新时间戳
使用kettle多端同步数据到中央库完整示例_第7张图片

三.kettle配置多端库多表同步中央库示例文件
附件请自提取
链接: https://pan.baidu.com/s/1GWw1... 提取码: xmsf

kettle中央库向多端分发数据示例见:
https://segmentfault.com/a/11...

你可能感兴趣的:(java,mysql,数据库)