kettle快速增量读取Access数据库(优化过滤)

使用kettle工具读取Access数据库,笔者只是记录自己的方案,有更好的方式欢迎评论交流

1.新建转换

2.普通方案

可实现如下转换配置,插入数据,在第三节介绍如何优化管道

2.1Access输入

  • 配置Access文件路径

  • 字段:点击获取字段,并更新相应内容

 也可点击预览数据

2.2新增字段

可根据需求是否需要该组件

 2.3过滤记录

2.4插入/更新

配置如下图,这里是以目标数据库为pgsql为例,图中的不执行任何更新,勾选了则不会更新历史数据。

 3.优化方案(提速)

如下方案,由于Access输入组件的限值,没有指定读取的行数,故增加表输入Multiway merge join两个组件,在过滤条件中过滤大于表输入查询的最大id。在转换中比对数据,而非到目标数据库组件比对插入或者更新(非常地影响转换效率)

 

 3.1表输入

这里重命名表查询组件→查询最大id,组件配置如下,注意:sql语句引入临时id字段t_id用于join组件(值取得1,可任意取,只要值和后边得新增字段组件一直就行)

 3.2增加常量组件新增t_id

 3.3Multiway merge join3.4过滤记录

3.5其它组件

配置和普通方案一致

4.对比

两种方案的运行时效对比

4.1优化后的方案

由于数据库本身不需要更新,不到3秒就运行完了

4.2普通方案

虽然数据库本身不需要更新,但是所有数据量都需要放到目标数据库比对,非常慢,运行了18分钟还只处理了三千多条。

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值