从Pentaho的工作转变为转型

时间:2017-07-14 03:41:24

标签: pentaho pentaho-spoon pentaho-cde pentaho-data-integration

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

enter image description here

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

我的问题是有参数,参数和变量,我不知道使用哪一个。如何使这项工作?

2 个答案:

答案 0 :(得分:1)

您可以使用变量或参数。如果您使用的是变量,请使用

${variable1} 
您的查询中的

语法,如果您想使用参数,那么您必须使用?在您的查询中,并在"字段名称中提及这些参数的名称以用作参数"部分。两者都有效。如果您需要进一步澄清,请告诉我。

答案 1 :(得分:1)

karan的含义是您的sql应该看起来像delete from REFERENCE_DATA where rtepdate = ${you_name_it},并选中Variable substitution框。必须在转换选项中声明you_name_it参数(单击勺子面板中的任意位置,选项/参数),使用或不使用默认值。

运行转换时,系统会提示您使用面板设置参数值,包括you_name_it

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

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

请注意,有一个现成的Delete步骤可以从数据库中删除记录。指定表名(可以是参数:框中只有 Crtl + 空格),表列和条件。该条件将来自参数方法中Get parameter中定义的上一步。