将sql查询结果存储在pentaho变量中

时间:2016-03-07 15:45:20

标签: mysql variables select pentaho

我是PDI的新手(从SSIS传来),我通过处理变量问题遇到了一些麻烦。

我想执行此操作: 从sql select查询我想将结果保存到变量中。 出于这个原因,我创建了一个作业和两个转换,因为在pentaho中,每个步骤都是并行执行的。

enter image description here

第一个转换将负责设置变量,第二个转换将使用此结果作为输入。 但是在第一次转换中我通过设置变量来解决问题,我不明白我在哪里实例化该变量来实现“set season variable”步骤。然后如何在下一次转换中得到这个结果。

如果有人知道这一点,或者你可以推荐一个很好的例子,我会非常感激。

2 个答案:

答案 0 :(得分:3)

这对SSIS用户来说确实令人困惑。在PDI中,您不像在SSIS中那样创建记录集变量。只需创建一个工作就可以为您创造一个。每个工作都有两种不同类型的“结果”。一个用于记录集行,一个用于文件名。

这些变量无法直接访问;他们只是工作的一部分。有些步骤可以直接与他们互动。例如,在创建转换时,在“作业”分支下,有Get rows from results步和Copy rows to results步。它们直接与作业的行结果一起工作。

请注意,您必须手动管理结果的元数据。这是一个痛苦,但总的来说,我发现PDI的方法比SSIS更直观,更容易。我发现SSIS在这方面更加灵活。

还有Get files from resultSet files in result。这些与作业的内置文件结果进行交互。这只是作业中配置的任何步骤触及的每个文件的列表。在工作选项卡上有直接处理它的任务,例如Process result filenamesAdd filenames to resultDelete filenames from results。这些任务在作业的内置文件结果列表中运行,并提供一种简单的方法,例如,归档您刚运行的转换所加载的所有文件。

请注意,在使用这些步骤时,他们会记录作业中每个步骤触及的每个文件。如果查看处理文件的转换(数据流)中的大多数步骤,通常会出现“将文件添加到结果”复选框,默认情况下会选中该复选框。如果取消选中此项,则不会将文件名添加到作业文件结果中。您还可以使用Delete filenames from result步骤从文件结果中删除特定文件。

答案 1 :(得分:1)

从工作中开始转型:

Transformation to get SQL value to a variable

在工作中将转换变量重载到全局变量中并使用它:

enter image description here