0

我正在尝试使用 ${parameter_name} 表示法在 Impala 上执行来自 Pentaho(版本 5.0.6)CDE 的参数化查询。我发现如果我删除参数并在 SQL 查询中对值进行硬编码,一切正常,但如果我输入参数,一切都会停止使用通用错误消息“错误处理组件”(我正在使用CDE 的表组件以显示值)。在 pentahobaserver-stdout 日志文件中,我发现了以下异常:

Jun 24, 2014 3:01:08 PM com.sun.jersey.spi.container.ContainerResponse mapMappableContainerException
SEVERE: The exception contained within MappableContainerException could not be mapped to a response, re-throwing to the HTTP container
java.lang.NoSuchMethodError: org.pentaho.reporting.engine.classic.core.ReportDataFactoryException.getParentThrowable()Ljava/lang/Throwable;

这似乎是一个过于笼统的错误消息(由这个错误http://jira.pentaho.com/browse/CDA-79引起)

在网上进行了更多调查后,我想我遇到了这个问题。现在我既不能避免使用参数,也不能避免使用 Pentaho 或使用 Impala,因此,我被卡住了。这个问题有解决方法吗?

先感谢您 :)

4

1 回答 1

0

并不真地。Impala 的 JDBC 驱动程序不支持报告库中使用的 PreparedStatements 中的参数。

这是一个很难解决的问题。可能最好的解决方法是使用 Kettle 转换,动态构建查询并将它们发布到 Impala。

这样,参数处理将在 Kettle 级别完成,但对于 Impala,它将是一个静态查询。

于 2014-06-25T13:22:03.600 回答