Kettle作业并行设置及多前置任务同时运行完成才执行后续节点的方案
目录
- Kettle作业并行设置及多前置任务同时运行完成才执行后续节点的方案
- 一、问题
- 二、解决方案如下:
- 1.打开并行
- 2.添加变量和检验节点:
- 三、运行结果分析
- 1.作业度量
- 2.日志
- 四、如何查看运行日志信息
Kettle作业并行设置及多前置任务同时运行完成才执行后续节点的方案
一、问题
在学习kettle的过程中,发现如果从start节点拉出两条线,这两个分支路径是串行运行的,即先运行路径1,再运行路径2,而且**【转换test2】**每个路径都会运行一次,而不是等待两个路径同时运行完后才执行。
通过查阅大量资料和测试得知如下结论:
- kettle 中的作业是串行执行的
- 通过将路径1和路径2调整上下结构,发现依旧先执行路径1,然后执行路径2,这说明串行顺序可能是跟创建时间有关的,与构图的上下无关。
二、解决方案如下:
经过测试,解决方案如下:
1.打开并行
1.右键需要并行的前一个节点,例子中为**【start】**;
2.勾选 “ Run Next Entries in Parallel ”
然后可以看到HOP上多了平行线标记:
2.添加变量和检验节点:
1.添加 设置变量 节点 【计数 】,用于初始化变量值,配置如下:
2.添加 设置变量 节点 【计数求和】,用于变量值累加,配置如下:
3.2.添加 检验字段的值 节点 【检验字段的值】,通过计数结果判断是否运行完,配置如下:
其中,值初始化为0,有几个分支后面加几个1。
三、运行结果分析
1.作业度量
(1)分支前的节点只运行一次
我们可以看到 【开始】 节点和 【计数】 节点只运行了一次,这说明分支节点前的节点只运行一次。
(2)确认并行生效
我们可以从执行的作业度量可以看到,节点 【清空表】 在节点 【检验字段的值】 第一次运行失败后才运行完,说明从节点 【计数】 发出的两个分支是并行的。
(3)【转换test】节点只运行了一次
我们可以看到节点 【检验字段的值】 共运行了2次,其中第1次失败,第2次成功。成功后运行了 【转换test】 节点。
结合数据更新情况,可以确认我们配置成功了。
我们再看一下详细日志中参数的计算情况。
2.日志
1.变量初始化
从绿色框中的日志可以看到,这里运行了 【计数】 节点,且只运行了一次,赋值为0;
2.计数求和
节点 **【计数求和】**第一次运行,对变量 CNT 赋值为01;
节点 **【计数求和】**第二次运行,对变量 CNT 赋值为011;
3.检验字段的值
【检验字段的值】 节点第一次与 ‘01’ 比较,结果为false;
【检验字段的值】 节点第二次与 ‘011’ 比较,结果为true(日志中未打印,但后续进行了下一个节点的运行动作,可以推论出比较结果为true);
四、如何查看运行日志信息
视图–执行结果面板,日志信息会在主图下方显示。