OBIEE 如何生成然后针对目标数据库运行的 sql 语句?我有一份报告,它在针对 Oracle 数据库执行时生成一条 SQL 语句,而在通过 jdbc 驱动程序针对 Apache Drill 执行时则完全不同。我的问题是,在第二种情况下,查询甚至在语法上都无效。
我读过这个 - http://gerardnico.com/wiki/dat/obiee/query_compiler 但仍然不了解 Oracle 根据驱动程序决定要执行的实际查询的机制。
OBIEE 如何生成然后针对目标数据库运行的 sql 语句?我有一份报告,它在针对 Oracle 数据库执行时生成一条 SQL 语句,而在通过 jdbc 驱动程序针对 Apache Drill 执行时则完全不同。我的问题是,在第二种情况下,查询甚至在语法上都无效。
我读过这个 - http://gerardnico.com/wiki/dat/obiee/query_compiler 但仍然不了解 Oracle 根据驱动程序决定要执行的实际查询的机制。
OBIEE 使用称为 RPD 的“通用元数据模型”。这有一个数据的逻辑模型,以及它的物理数据源。当用户运行报表时,它作为“逻辑”查询提交,然后 BI 服务器使用 RPD 对其进行编译,以针对数据源生成必要的 SQL 查询(或多个查询)。
虽然Hive 和 Impala肯定可以与 OBIEE 一起使用,但我还没有听说过 Drill 被成功使用。如果您的连接正常工作,那么要整理它生成的查询语法,您需要摆弄DBFeatures 配置,OBIEE 使用该配置来了解哪些 SQL 语句对给定数据库有效。因此,如果 Drill 不支持,例如,INTERSECT
您只需取消INTERSECT_SUPPORTED
勾选(我在解释确切的对话术语)。