kettle篇: 增量更新

kettle篇: 增量更新

  • 为什么要使用增量更新呢?想象一下,巨量数据中,每天变化的只是其中一小部分。如果每次都全量更新,那无疑是对时间和资源的极大浪费。
    增量更新可以做到聪明地只处理那些发生变化的数据,确保我们既能保持数据的时效性,又不必为不必要的操作买单。
  • 场景描述
    有两张数据表,tablea(源表),tableb(目标表),存在不同的数据库中,现需要使用kettle作为ETL工具,将tablea里的数据抽取到tableb里。
    tablea:
    在这里插入图片描述
    tableb:
    在这里插入图片描述

一、 建立作业和转换

在这里插入图片描述

二、 转换1:设置变量

增量更新的逻辑:获取tableb的最大id,sql获取tablea中大于这个id的行进行插入更新。

  • 在设置变量的转换中添加表输入对象]
  • 设置好数据库连接
  • sql获取tableb的最大id
    在这里插入图片描述
    1- 添加设置变量组件
    2- 字段名称里填写前面表输入的字段名
    3- 变量自定义为MAXID
    4- 最后设置变量活动类型为整个环境

在这里插入图片描述

三、加载变量并更新

进入到加载变量的转换中
在这里插入图片描述

  1. 添加获取变量组件
  2. 填写变量名称,这里名称要和之前设置变量时一致
  3. 变量栏目下添加${变量名}, 设置好类型点击确定
    在这里插入图片描述
  4. 这里添加表输入,获取表a的数据,通过id>${MAXID} 来获取需要插入/更新的行
  5. 下面再点击 《替换SQL语句里的变量》!!
    在这里插入图片描述
  6. 添加插入/更新组件,向tableb插入数据
  7. 通过id=id来判断是否需要更新
  8. 然后选择更新的字段,这里id、name都更新。然后确定
    在这里插入图片描述

四、 执行作业

  1. 双击设置变量和加载变量转换,并且放入对应的转换之后,点击三角形,执行作业

在这里插入图片描述
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值