1

我是 pentaho 的新手,我需要从文件中读取多个 SQL 语句并将输出存储在文件或数据存储中。输出/选择列对于所有 sql 语句都是通用的。我可以知道如何实现它。例如

Select last_name, first_name age from employee where age is > 25;
Select last_name, first_name age from employee where salary is > 25000;
Select last_name, first_name age from employee where deptid in (Select deptid from dept where deptid like 'Dept-E00%');

我需要加载的数据非常庞大(2500 万/天),上面的 SQL 语句只是示例。选择所有行并在每行上应用过滤器对我来说不是一个选项。

.ktr 文件很有帮助。

谢谢指教。

4

2 回答 2

4

您也可以尝试如下:

  1. 使用“将行复制到结果”将所有 SQL 查询读入内存。检查图像如下:

在此处输入图像描述

  1. 在单独的转换中,定义一个变量并检查:execute for every input rowcopy previous result to parameter.

  2. 最后,采取“表格输入步骤”并使用上面定义的变量。检查下图:

在此处输入图像描述

这里我使用${queries}了变量。

注意:假设输出步骤元数据结构将保持不变。如果它正在改变,我认为它不会工作。

我认为这个过程将扩大到数百万条记录。我还没有尝试过这么大的体积,但你可以试一试。

这是如上所示代码的要点。

如果您需要了解更多信息,您也可以阅读此博客。

希望能帮助到你 :)

于 2015-02-27T20:26:32.227 回答
0

您可以使用“执行行 SQL 脚本”运行 SQL 脚本。它将按顺序运行每个脚本,并将它们的结果集全部返回到单个数据流中。我建议您在每个 SQL 语句中添加一个常量字段,以包含对它们所指内容的描述,因为我不确定 Execute Row SQL 脚本是否会在输出流中包含 SQL 语句。

于 2015-02-27T11:04:17.037 回答