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

Store a sql query result in pentaho variable

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

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

第一个转换将负责设置变量,第二个转换将使用此结果作为输入。 但是在第一个转换中我在设置变量时遇到了麻烦,我不明白我必须在哪里实例化这个变量来实现 "set season variable" 步骤。然后在接下来的转换中如何得到这个结果。

如果有人知道这件事,或者如果您可以推荐任何 link 和一个很好的例子,我将非常感激。

这确实会让 SSIS 用户感到困惑。在 PDI 中,您不像在 SSIS 中那样创建记录集变量。简单地创造一份工作就会为你创造一份工作。每个作业都有两种不同类型的"Results"。一种用于记录集行,一种用于文件名。

这些变量不能直接访问;他们只是工作的一部分。有些步骤直接与它们交互。例如,在创建 t运行s 表单时,在 "Job" b运行ch 下,有一个 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。这些任务对作业的内置文件结果列表进行操作,并提供一种简单的方法,例如,将 t运行s 加载的所有文件存档,您只需 运行.

使用这些步骤时请注意,它们会记录作业中每个步骤所触及的每个文件。如果您查看处理文件的 t运行sformations(数据流)中的大部分步骤,通常会有一个默认选中的 "Add files to results" 复选框。如果取消选中此项,则不会将文件名添加到作业文件结果中。您还可以使用 Delete filenames from result 步骤从文件结果中删除特定文件。

从你的工作开始转型:

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