【问题标题】:kettle etl passing variable水壶 etl 传递变量
【发布时间】:2016-09-23 11:00:25
【问题描述】:

在我的转换中,我在修改后的 java 脚本中创建了一个 var(当前时间格式化为 yyyy-mm-dd HH24mmss )。然后我使用设置变量步骤将字段设置为变量,并且范围在根作业中有效。

问题是如何在另一个转换中使用该变量(在同一个工作中)?我尝试获取变量,但似乎只有系统变量。我想要做的是在第二次转换中将日期输出到文件中。中间有更多的转换,这就是为什么我不能在第一个转换中做输出。

或者是否可以在作业中创建一个变量,并设置其值(yyyy-mm-dd HH24mmss 中的当前日期)然后在转换中使用它?

编辑:

答案有效,但日期不是我预期的格式(yyyy-mm-dd HH24mmss),并且不清楚日期是什么格式。例如,如果我尝试在修改后的 java 脚本中对其进行格式化并在其上使用 getFullYear 函数,我会得到 TypeError: Cannot find function getFullYear in object Wed May 25 17:44:04 BST 2016。但如果我只是将其输出到文件中,则日期为 yyyy/mm/dd hh:mm:ss。

所以我找到了另一种方法是使用表格输入并生成所需格式的日期并设置变量,其余部分相同。

【问题讨论】:

    标签: pentaho kettle


    【解决方案1】:

    在您的第一个转换中,使用Get System Info 步骤将当前日期/时间注入您的数据流,并将其运行到设置您的作业中定义的变量的Set Variables 步骤中。

    当您使用 CTRL-Space 时,您正在使用的变量可能不会出现在下拉列表中。这是因为该变量是由作业在运行时分配的,而在设计时不可用。只需在设计时在字段中输入“${VariableName}”即可。当您从包含该名称变量的作业运行时,它应该可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-13
      • 2012-12-31
      • 1970-01-01
      • 2022-10-05
      相关资源
      最近更新 更多