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

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

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

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

A表(数据多的表)
B表(数据少的表)

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

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

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

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

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

执行成功
B表数据更新后
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Kettle 1.Kettle的介绍: Kettle是一款国外开源...
    有你就行阅读 762评论 0 1
  • 专业考题类型管理运行工作负责人一般作业考题内容选项A选项B选项C选项D选项E选项F正确答案 变电单选GYSZ本规程...
    小白兔去钓鱼阅读 9,095评论 0 13
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,500评论 0 9
  • 先说下事件起因.. 莫名的数据库服务器硬盘损坏,由于没做raid,只能靠过去的备份数据生活了. 由于定期备份.整个...
    xywh阅读 1,288评论 0 0
  • 数据库的基本是概念名词解释: 数据库名词解释 元组:可以理解为表的每一行就是一个元组 候选码:若关系中的某一属性组...
    杰伦哎呦哎呦阅读 1,166评论 0 6