如何在Pentaho中的转换内的步骤之间传递变量

时间:2018-09-18 03:09:27

标签: pentaho kettle spoon

我想设计一个附件中的ETL作业。enter image description here

第1步将设置两个变量Variable_1Variable_2。我正在使用Generate Rows步骤来执行此操作,其中我在Fields中定义了两个变量。

第2步将通过SQL查询从数据库中读取日期。我正在使用Table input实现这一目标。 sql就像select Variable_3 from table1一样,是一个单一值。此处的预览显示成功从数据库中读取了该值。

我希望将第3步设置为Modified Java Script Value,在这里我想使用这3个变量并进行一些计算以得出输出Variable_4,然后我希望将其传递到将来的转换中以供使用。

我是Pentaho的新手,有以下问题:

1)将步骤2(数据库步骤)连接到步骤3(Javascript步骤)时,出现警告对话框:

  

我们检测到具有不同字段数的行,这在   转变。第一行包含2个字段,另一行   包含1

此警告是什么意思?我究竟做错了什么?如何将第1步的2个变量和第2步的1个变量传递给我的javascript步骤?

2)如何在Javascript步骤中设置计算出的Variable_4以便在其他转换中进一步使用?是否在Transformation 1上定义名为Variable_4的参数并通过javascript进行设置?如果是,怎么办?

1 个答案:

答案 0 :(得分:0)

我通过删除第一步(生成两个行的生成行)解决了这一问题,并在“表视图”步骤之后放入“添加常量”步骤,以将变量1和变量2与从表视图步骤传递给它的变量3一起添加。 / p>

最后,在Javascript步骤中,所有三个变量都可用。

尽管如此,我仍然无法弄清楚问题2)。