登录
首页 >  数据库 >  MySQL

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

来源:SegmentFault

时间:2023-01-19 10:58:28 286浏览 收藏

积累知识,胜过积蓄金银!毕竟在##column_title##开发的过程中,会遇到各种各样的问题,往往都是一些细节知识点还没有掌握好而导致的,因此基础知识点的积累是很重要的。下面本文《使用kettle多端同步数据到中央库完整示例》,就带大家讲解一下MySQL、Java、数据库知识点,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

需求:
需要将端库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='要同步的数据表信息 '

数据示例:

image.png

image.png

二.任务配置示例
1.所有库表同步整体job

image.png

2.某表数据抽取子job

image.png

3.某表数据抽取job

image.png

4.某表数据同步
两个数据流,合并记录,包括new changed deleted 此处就新增以及更新进行进行处理。删除无法通过增量合并的方式进行处理。此处删除只是更新is_deleted字段,作为更新处理。配置如下:

image.png

端库的表数据输入
image.png

端库的库链接参数获取
image.png

中央库的表数据输入
image.png

合并记录
image.png

switch/case设置
image.png

表数据插入/更新 【表字段需要对应】tms为中央库
image.png

5.更新时间戳

image.png

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

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

今天带大家了解了MySQL、Java、数据库的相关知识,希望对你有所帮助;关于数据库的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表