【问题标题】:How to pass variables between steps inside a transformation in Pentaho如何在 Pentaho 中的转换内的步骤之间传递变量
【发布时间】:2018-09-19 08:37:53
【问题描述】:

我想按照附件设计一个 ETL 作业。

第 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

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

2) 如何在我的 Javascript 步骤中设置计算的 Variable_4 以进一步用于其他转换?我是否在Transformation 1 上定义一个名为Variable_4 的参数并从javascript 设置它?如果是,怎么做?

【问题讨论】:

  • @Kamil G.:请检查我的新问题。我在第 2 步之后使用了“添加常量值”并删除了第 1 步......并且它按预期工作......但是,我无法在我的 Javascript 步骤中设置生成的 Variable_4......
  • 我已经回答了你的最新问题。
  • @KamilG.:还有一个问题...已将其放入同一问题的 cmets 中。请检查何时可以...谢谢!

标签: pentaho kettle spoon


【解决方案1】:

我通过删除第一步(生成行创建两个变量)解决了这个问题,并在表视图步骤之后添加了一个添加常量步骤,以将变量 1 和变量 2 添加到从表视图步骤传递给它的变量 3 旁边。

最后,我的 Javascript 步骤中的所有 3 个变量都可用。

我仍然无法弄清楚问题 2)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-17
    • 1970-01-01
    相关资源
    最近更新 更多