kettle 发送html邮件,使用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='要同步的数据表信息 '

数据示例:

7J7Nb2.png

bauMFr.png

二.任务配置示例

1.所有库表同步整体job

VbE363.png

2.某表数据抽取子job

qU3u6f.png

3.某表数据抽取job

bQJJ3u.png

4.某表数据同步

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

niuMZr.png

端库的表数据输入

AruyQr.png

端库的库链接参数获取

ZjYrue.png

中央库的表数据输入

fYfya2.png

合并记录

3a6rAf.png

switch/case设置

MbyURb.png

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

Bz2e6z.png

5.更新时间戳

MBN32y.png

三.kettle配置多端库多表同步中央库示例文件

附件请自提取

链接: https://pan.baidu.com/s/1GWw1… 提取码: xmsf

作者:一片秋叶一树春

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值