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

问题描述 投票:3回答:2

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

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

enter image description here

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

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

mysql variables select pentaho
2个回答
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
投票

从你的工作开始转型:

Transformation to get SQL value to a variable

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

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.