码迷,mamicode.com
首页 > 其他好文 > 详细

Kettle 中的循环

时间:2019-06-07 10:47:14      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:val   input   http   重复   pac   color   复制   元素   步骤   

说道循环,小伙伴们肯定不陌生,就是重复干一件事;而kettle中的循环一般是发生在job中,因为job是串行执行的;

kettle的循环有两种,一种是通过js脚本,另外一种是通过遍历前面步骤返回的每一行。


下面是我写的伪代码,我将使用Kettle来实现这段代码:

array = [‘sys1‘,‘sys2‘,‘sys3‘,‘sys4‘]

for variable in array:
     if variable == ‘sys1‘ :
         print(‘%s被调用‘%(variable,))
        
     elif variable == ‘sys2‘ :
         print(‘%s被调用‘%(variable,))
    
     elif variable == ‘sys3‘ :
         print(‘%s被调用‘%(variable,))
    
     elif variable == ‘sys4‘ :
         print(‘%s被调用‘%(variable,))
    
     else :
         print(‘没有被调用‘)


代码里循环变量是variable,用for遍历完整个数组,则表示循环结束。

循环体中有一组判断条件,判断数组中的元素归于哪一个分支。

如果所有判断条件都不符合,则打印“没有被调用”


1. Kettle作业介绍

schedule_job.kjb : 用来关联循环变量和循环体的作业,也是调用的入口,可以理解main

get_data_from_datagrid.ktr : 生成数组,也就是循环条件。

cycle_body_job.kjb : 循环体,数组里有几条数据,循环体就执行几次。


2. 下图是 schedule_job 的结构,它的作用是连接循环条件和循环体,所以这个作业中包含其他两个步骤

技术图片


接下来我会展开每个步骤里的设置方法,最后再介绍schedule_job 是如何设置的;

如果展开的是文件,则直接写文件名,如果展开的是步骤,则带上文件名-步骤名称。

例如 展开文件 get_data_from_datagrid.ktr

       展开步骤 get_data_from_datagrid-Data Grid


3. get_data_from_datagrid.ktr 展开

技术图片


只有两个步骤,一个是data grid,用来生成数组,另外一个步骤是Copy rows to result ,用来把返回的数据复制到结果中,可以返回给调用者。调用者就是外面的schedule_job.ktr。


4. get_data_from_datagrid-Data Grid 展开

技术图片

在Meta选项卡中填写字段信息, 字段名是SYSTEMNAME 类型是字符串

技术图片

在Data选项卡里填写字段的值,这个过程就好像往excel里填数据一样。


5. cycle_body_job.kjb 展开

技术图片


双击空白的地方,打开“Parameters”选项卡, 在里面输入变量名SYSTEMNAME。这个变量跟前面的步骤中字段名相同。

技术图片


6. cycle_body_job-is_sys1 展开

其他判断条件类似,不一一展开。

技术图片


7. schedule_job 设置方法

技术图片


勾选“Execute every input row”

技术图片


技术图片

Kettle 中的循环

标签:val   input   http   重复   pac   color   复制   元素   步骤   

原文地址:https://www.cnblogs.com/fooobabar/p/10987554.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!