KETTLE一行一行执行方法

本文总结了Kettle执行SQL语句时两种一行一行处理数据的方法。第一种利用表输出步骤的replace variable in script选项和execute for each row设置,循环执行SQL,减少数据库连接次数。第二种方法适用于复杂处理,每次处理一行数据,但资源消耗较高。两种方法各有适用场景,附件提供了详细示例。

目前了解的kettle一行一行执行的方法有两种现在这里做个总结

后面的一个问号就是表示它需要接受一个参数,你在这个表输出下面需要指定replace variable in script 选项和execute for eachrow 为选中状态,这样,Kettle就会循环执行这个sql , 执行的次数为前面参数步骤传入的数据集的大小。这样的好处是循环执行sql,但是数据库连接不断开。

 

 

第二种

 

其中主job的下面两个变量地方要注意

要每一次执行的行的转换里面的变量也要加上

以上两种方法第一种是减少对数据库连接的次数,资源消耗的比较少,如果对第二个表输入的数据库表加上索引的话,会大大提高数据抽取效率。第二种方法适合比较复杂的抽取,输入的数据行数比较少,第二个转换输出数据每一行里面比较复杂的数据处理。第二种方法的转换还可以换成job,但是无论是转换还是job都会在没传入一行参数的时候启动要被执行的转换或者job比较浪费资源。

以上两个附件分别对应网址http://download.csdn.net/detail/why_00/8770797

http://download.csdn.net/detail/why_00/8770805

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值