在 pentaho 中执行 SQL 步骤

Posted

技术标签:

【中文标题】在 pentaho 中执行 SQL 步骤【英文标题】:Execute SQL step in pentaho 【发布时间】:2015-02-16 04:42:11 【问题描述】:

我创建了转换,包括表格输入、sql 步骤和 excel o/p 步骤。

    表格输入-->运行查询并获取包含sql查询select * from dual的字段“查询”

    执行 sql 步骤-->使用 '?' 动态传递该查询字段并启用变量替换

    Excel o/p-Expecting o/p是应该触发sql查询并在excel o/p中得到结果

但我无法从执行 sql 步骤中获取字段。我该怎么做???

谢谢 卡维莎S

【问题讨论】:

你能附上ktr吗?以便我们检查问题所在。 【参考方案1】:

使用Database join 而不是Execute SQL stepDatabase Join 步骤允许您使用从先前步骤中获得的数据对数据库运行查询。

Database join 输入:您可以在步骤内定义的 SQL 查询中使用 ? 表示法从上一步中传递您想要的任何数据。 Database join 输出:执行参数化 SQL 查询并添加新参数作为输出。

这一步是您第二步所需要的。查看有关Database join step in the documentation 的更多信息。

【讨论】:

【参考方案2】:

在 PDI 中,“执行 SQL 步骤” 不用于生成行。它不会向数据流添加任何额外的行。你得到了表格输入步骤来生成多行。

您可以尝试的替代方法是将转换分为两部分。

第 1 部分: 表格输入步骤 >(生成查询行)>> 使用“设置变量”或“将行复制到结果”到其他一些步骤以将查询设置为某个变量,例如: query.

第 2 部分: 采取另一个表格输入步骤(进入下一个 .ktr 文件)并使用 $query 的变量替换 >> 最后将结果集输出到excel 输出。

对于动态sql查询,可以阅读这个blog。


如果您对生成的查询有一些查找,可以使用Dynamic SQL row 来生成行。

希望对你有帮助:)

【讨论】:

以上是关于在 pentaho 中执行 SQL 步骤的主要内容,如果未能解决你的问题,请参考以下文章

Excel导出工具包pentaho report

在 Kettle/Spoon/Pentaho 中循环

是否可以按顺序执行 pentaho 步骤?

在 PENTAHO 中生成一系列查询

ETL工具kettle基本使用

如何从 Pentaho 的 javascript 步骤中的另一行读取?