将SQL查询结果存储在Pentaho变量中

4

我刚接触PDI(从SSIS转过来),在处理变量问题时遇到了一些麻烦。

我想要实现以下功能: 从SQL查询语句中,将结果保存到一个变量中。 出于这个原因,我创建了一个作业和两个转换。在Pentaho中,每个步骤都是并行执行的。

enter image description here

第一个转换将负责设置变量,而第二个转换将使用此结果作为输入。 但是,在第一个转换中,我无法设置变量,我不明白我在哪里可以实例化此变量以实现“设置季节变量”步骤。然后如何在下一个转换中获取此结果。

如果有人了解此事,或者您可以推荐任何具有良好示例的链接,我将非常感激。

2个回答

4
对于SSIS用户来说,这可能会令人困惑。在PDI中,您不像在SSIS中那样创建记录集变量。只需创建一个作业即可为您创建一个记录集变量。每个作业都有两种不同类型的“结果”。一种是记录集行,另一种是文件名。
这些变量不是直接可访问的;它们只是作业的一部分。有一些步骤直接与它们交互。例如,在创建转换时,在“作业”分支下,有一个“从结果获取行”步骤和一个“将行复制到结果”步骤。它们直接使用作业的行结果。
请注意,您必须手动管理结果的元数据。这很麻烦,但总体而言,我发现PDI的方法比SSIS更直观、更容易。在这方面,我认为SSIS更灵活。
还有“从结果获取文件”和“在结果中设置文件”。它们与作业的内置文件结果进行交互。这只是一个由作业中任何配置了的步骤所涉及的每个文件的列表。在作业选项卡上,有一些任务直接处理它,例如“处理结果文件名”、“将文件名添加到结果”和“从结果中删除文件名”。这些任务对作业的内置文件结果列表进行操作,并提供了一种简单的方式,例如,归档刚刚运行的转换加载的所有文件。
请注意,在使用这些步骤时,它们记录作业中每个步骤所涉及的每个文件。如果您查看与文件相关的大多数转换(数据流)中的步骤,通常会有一个默认选中的“将文件添加到结果”复选框。如果取消选中此复选框,则不会将文件名添加到作业文件结果中。您还可以使用“从结果中删除文件名”步骤删除特定文件的文件结果。

2
从您的工作开始转换:

启动一个转换:

将SQL值转换为变量

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

在此输入图像描述

注:"Original Answer"翻译成"最初的回答"。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接