Kettle 入门级使用,案例教程

前期工作准备:https://blog.csdn.net/xueruixuan/article/details/86488703

实战案例场景描述:
2个数据库跨库同步数据, 2个库的数据进行同步的新增、修改、删除

1: 数据库模块
数据库A 为Mysql 数据库  存在表Table1
数据库B 为Sqlserver 数据库 存在表Table 2

每隔15分钟,将Table1的数据 同步到Table 2的数据中


2: 唯一性判断

2个表的数据唯一性都是依赖于主键GID (匹配字段)
2个表都是根据UpdateTime  和 状态码 、GID  3个条件判断数据的变化性 (数据字段)


案例实战步骤
1. 配置完成数据库配置,如果大家在同一个作业里面都使用1个 数据源,记得点击右键,数据共享



2. 搭建简易的流程
 原始表:指的是数据来源的表
 目标表:指的是将要同步的表

 排序记录(划重点):是为了解决 后期2个表合并记录的时候准备使用的,原因是因为 每次合并记录的时候,默认是按50000一一次存储到内存中,如果不提前排序,可能会导致 2个表的结果集 合并记录时出现错误的情况,最后导致同步数据失败

字段选择:是为了解决 2个表跨库的过程中,数据库字段不一致的问题

 

 

合并记录(划重点)
匹配的关键字 对比出2个数据库是否存在相同的记录(简单理解为判断是否新增的依据),
数据字典 是对比2个数据库是否存在 变化的记录,此字段需要根据业务场景来进行调整处理  PS:字段越多对比数据越慢

 




根据合并记录的数据行来执行对应的流程处理
注意: 值千千万万一定要按这个上面的写,特别是changed,别写错了






后续的配置网上案例就比较多了,大家记得 提交数据的时候,还是把批量更新可能会对数据库的压力更小一点





如果涉及到多表的同步,而且直接没有关联性的,可以尝试用下面这个方式进行

 

 

总结:
1. 文章写得很乱,没有流程而言,只有每个地方简单切图
2. 排序的细节点和合并记录的细节点 非常非常重要
3. 自己也是初学者,无法跟大佬相比,如果更好的方案或者问题,请大佬指出。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值