kettle事务的使用案例

事务与数据库:

1、数据库连接只在执行作业或转换时使用。在作业里,每一个作业项都打开和关闭一个独立的数据库连接。转换也是如此。但是因为转换里的步骤是并行执行的,每个步骤都打开一个独立的数据库连接并开始一个事务。尽管这样在很多情况下会提高性能,但当不同步骤更新同一个表时,也会带来参照完整性问题。

2、为解决打开多个连接而产生的问题,Kettle可以在一个事务中完成转换。转换设置对话框的杂项中,勾选“使用唯一连接”,可以完成此功能。当选中了这个选项,所有步骤里的数据库连接都使用同一个数据库连接。只有所有步骤都正确,转换正确执行,才提交事务,否则回滚事务。

1.项目中使用事务的背景,使用kettle的版本是7.1:

mysql库中有一张结果表,这个表是按年月维度存储每个年月的非税收入数据的,前端(数据大屏)每5分钟需要请求一次接口,查这个结果表的数据;所以定时任务每隔5分钟就要更新当前月的数据。
1.第一个想到的办法是 用 插入/更新 组件,可是用这个组件,速度很慢,5分钟数据都还没跑完,前端10分钟请求两次后的数据都是没有变化的。
2.先删除,后插入。这个方式会造成短期内数据空缺,有可能数据刚刚删掉,还没来得及插入,此时前端的请求过来了,导致大屏展示的数据不准确。
3.先删除,后插入,把这两个过程放到一个事务中。执行这个转换时开启一个事务,等到事务中的各个步骤都执行完,才提交事务,这样前端查到的数据是没有问题的。

2.测试kettle事务,每个步骤的截图

在这里插入图片描述

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值