Kettle手册(八)- 循环

浏览: 9034

有的时候,我们想要在Kettle中实现这个循环的功能,比如,批量加载数据的时候,我们要对10张表执行同样的操作,只有表名和一些信息不一样,这时,写个循环就省事儿多了

1. 遍历结果集实现

image.png

这里的话,我们主要是通过一个将结果集返回,然后通过转换的设置来实现的

1.1 query_the_result

这个转换,只要是将我们要遍历的结果集返回,

图片.png

表输入,我们就是返回了5条记录,来做遍历

图片.png

复制记录到结果,这个控件的作用,就是我们可以在后面的转换继续使用这个结果集。


1.2 traverse_the_result

这里呢,我们就是需要遍历的转换了,这里,我们只是获取结果集,然后将结果集输出

图片.png

图片.png


还有一个很重要的一步,怎样让这个转换可以根据结果集的条数,去循环执行呢?

就是这个“执行每一个输入行”

图片.png



我们执行下看看

图片.png

2. 使用JS实现

网上有很多的例子,介绍怎样用JS来控制循环,这里我们也简单的测试下

图片.png

2.1 query_the_result

这一步,和上面的一样,就是将结果集返回

图片.png

2.2 travers_the_result

这里主要是使用JS将结果集进行遍历,通过JS,将一些结果存放到变量里面,在后面的操作中就可以使用了,通过${xxx}的方式使用

这个其实和Java、JS里面循环思路一样,通过结果集的总数“total_num”和下标“LoopCounter”进行判断

图片.png

2.3 evaluate_the_loop_count

这一步,就是判断下标的值和结果集的总数,进行对比,

图片.png


2.4 print_the_log

输出下,我们想要使用的变量

图片.png


2.5 manage_the_loop_index

这一步,给下标加一,然后获取下一条记录

图片.png

好了,执行下,我们看看

图片.png

好了,循环的使用先介绍到这里

推荐 2
本文由 liutangwow 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册