kettle etl传递变量

时间:2016-05-25 17:26:16

标签: pentaho kettle

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

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

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

编辑:

答案有效,但日期不是我预期的格式(yyyy-mm-dd HH24mmss),并且不清楚日期是什么格式。例如,如果我尝试在修改过的java脚本中对其进行格式化并使用getFullYear函数,那么我会得到TypeError:在BST 2016年5月25日17:44:04对象中找不到函数getFullYear。但是如果我只是将它输出到文件中,日期是yyyy / mm / dd hh:mm:ss。

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

1 个答案:

答案 0 :(得分:0)

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

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