js kettle 修改字段值_在kettle中快速更新一个字段中的信息

数据库中有订单表tb_order,其中有order_id和user_id和user_name等字段。

数据库中有用户资料表tb_user,其中有user_id和user_name等字段。

现在需要使用tb_user.user_name来更新tb_order.user_name,两个表的关联条件是tb_order.user_id = tb_user.user_id。

通常,在两个表都静止的时候,可以使用一个update来解决,如下。

update tb_order

set user_name = (select user_name from tb_user u where u.user_id = tb_order.user_id);

但是,如果这两个表的数据量较大,且两个表都在生产频繁使用的时候,一个update语句会锁表,且需要较长的时间,从而可能会导致正常的业务无法快速进行。

此时,就应该单独遍历tb_order表中的每一条记录,然后根据tb_order.user_id去tb_user中查询每一条记录中的user_name,最后根据tb_order.order_id来更新tb_order.user_name;这个单独遍历的方式,虽然不能完全解决锁表引起的问题,但是也可以较大概率避免。但是这个配置模式,效率非常低。

还有一个更好的思路,一个转换就可以完成的配置。思路如下:

1、使用表输入,从tb_order表中获得数据;

2、使用数据库连接控件,直接从表输入的结果中获得参数,然后执行查询,从tb_user表得到需要的信息;

3、使用插入更新空间,直接修改tb_order中指定的字段。

因为这三个步骤在一个转换中,所以,可以在第2步和第三步中设置并发数量来提高kettle的处理效率。

配置如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值