如何在 Pentaho 中的转换中的步骤之间传递变量
How to pass variables between steps inside a transformation in Pentaho
我想设计一个ETL作业,如附件所示。
第 1 步将设置两个变量 Variable_1
和 Variable_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 步骤)时,出现警告对话框:
We detected rows with varying number of fields, this is not allowed in
a transformation. The first row contained 2 fields, another one
contained 1
这个警告是什么意思?我究竟做错了什么?如何将第一步中的 2 个变量和第二步中的 1 个变量传递到我的 javascript 步骤?
2) 如何在我的 Javascript 步骤中设置计算的 Variable_4 以进一步用于其他转换?我是否要在 Transformation 1
上定义一个名为 Variable_4
的参数并从 javascript 设置它?如果是,如何?
我通过删除第一步(生成行创建两个变量)并在 Table 查看步骤之后添加常量步骤以添加变量 1 和变量 2 以及传递给它的变量 3 来解决这个问题Table 查看步骤。
最后,我的 Javascript 步骤中的所有 3 个变量都可用。
虽然我仍然无法弄清楚问题 2)。
我想设计一个ETL作业,如附件所示。
第 1 步将设置两个变量 Variable_1
和 Variable_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 步骤)时,出现警告对话框:
We detected rows with varying number of fields, this is not allowed in a transformation. The first row contained 2 fields, another one contained 1
这个警告是什么意思?我究竟做错了什么?如何将第一步中的 2 个变量和第二步中的 1 个变量传递到我的 javascript 步骤?
2) 如何在我的 Javascript 步骤中设置计算的 Variable_4 以进一步用于其他转换?我是否要在 Transformation 1
上定义一个名为 Variable_4
的参数并从 javascript 设置它?如果是,如何?
我通过删除第一步(生成行创建两个变量)并在 Table 查看步骤之后添加常量步骤以添加变量 1 和变量 2 以及传递给它的变量 3 来解决这个问题Table 查看步骤。
最后,我的 Javascript 步骤中的所有 3 个变量都可用。
虽然我仍然无法弄清楚问题 2)。