Kettle实现数据库中表的数据同步

参考自:kettle-2(实现增量更新-插入&更新)

前提条件:表中存在一个 int 类型的自增长的 id 主键,不存在数据删除的情况

原理:Kettle实现数据库表的数据同步是按照表的 id 主键值的大小来判断的,A表(数据多的表)中存在B表(数据少的表)中没有的数据,那么那些B表中新添加的表的主键肯定会比B表中的 id 值都要大,我们只需要把B表的 id 最大值获取到,然后和 A表的 id 进行比较,把那些 A表的id比从B表中查出来的最大值还要大的行传到 B表中即可,如果有点蒙,可以看下边的详细步骤。

Kettle实现数据库中表的数据同步_第1张图片
A表(数据多的表)
Kettle实现数据库中表的数据同步_第2张图片
B表(数据少的表)

1.把 B表(数据少的表)中的 id 最大值获取到

Kettle实现数据库中表的数据同步_第3张图片

2.找到A表(数据多的表)中B表(数据少的表)没有的数据

SQL语句中的?指的是刚刚获取到的B表最大值,表输入下边的 “替换SQL语句里的变量” 勾选,“从步骤中插入数据”选择刚刚的那个表数据,勾选上 “执行每一行” 。如果 “从步骤中插入数据” 里边没有要选择的,说明对象之间没有连接

Kettle实现数据库中表的数据同步_第4张图片

3.最后弄一个表输出就完事了(目标表是那个数据少的B表),如下

Kettle实现数据库中表的数据同步_第5张图片

4.执行转换,数据表就更新完成了

执行成功
Kettle实现数据库中表的数据同步_第6张图片
B表数据更新后

你可能感兴趣的:(Kettle实现数据库中表的数据同步)