在 Pentaho 中将工作价值传递给转型

Pass value from job to transformation in Pentaho

我在 Pentaho PDI 中进行了以下转换(注意 SQL 语句中的问号):

转换是从作业中调用的。我需要的是在作业为 运行 时从用户那里获取值并将其传递给转换,以便替换问号。

我的问题是参数、自变量和变量,不知道该用哪一个。如何实现?

您可以使用变量或参数。如果您使用变量,则使用

${variable1} 

查询中的语法,如果要使用参数,则必须使用?在您的查询中,并在 "Field names to be used as arguments" 部分提及这些参数的名称。两者都会起作用。如果您需要进一步说明,请告诉我。

karan 的意思是您的 sql 应该看起来像 delete from REFERENCE_DATA where rtepdate = ${you_name_it},然后选中复选框 Variable substitutionyou_name_it 参数必须在转换选项中声明(单击勺子面板中的任意位置,Option/Parameters),有或没有默认值。

当 运行 进行转换时,系统会提示您一个面板,您可以在其中设置参数值,包括 you_name_it

参数从作业透明地传递到转换,因此您可以将 you_name_it 声明为作业的参数。然后当用户运行作业时,会提示给参数列表赋值,包括you_name_it.

实现相同结果的另一种方法是使用参数。问号将以相同顺序替换为 Parameters list box 中指定的字段。当然,您使用的字段必须在上一步中定义。在你的例子中,一个 Get variable 步骤,它读取调用作业中定义的变量,并将它们放在一行中。

请注意,有一个现成的 Delete 步骤可以从数据库中删除记录。指定 table 名称(可以是参数:方框中的 Crtl+Space),table列和条件。条件将来自 Get parameter 中定义的前一步,就像在参数方法中一样。