jdbc 的 OBIEE [=11g=] 语句生成
OBIEE sql statment generation for jdbc
OBIEE 如何生成 sql 语句,然后 运行 针对目标数据库?我有一份报告,当针对 Oracle 数据库执行时生成一个 SQL 语句,而当通过 jdbc 驱动程序针对 Apache Drill 执行时则完全不同。我的问题是,在第二种情况下,查询甚至在语法上都无效。
我读过这个 - http://gerardnico.com/wiki/dat/obiee/query_compiler
但仍然不了解 Oracle 根据驱动程序决定要执行的实际查询的机制。
OBIEE 使用 "common metadata model" known as the RPD。它具有您的数据的逻辑模型,以及它的物理数据源。当用户运行报表时,它作为 "logical" 查询提交,然后 BI 服务器使用 RPD 编译生成针对数据源的必要 SQL 查询(或多个查询)。
而 OBIEE 使用 Hive and Impala definitely work with OBIEE, I've not heard of Drill being successfully used. If you've got the connectivity working then to sort out the query syntax it generates you need to fiddle with the DBFeatures configuration 来了解哪些 SQL 语句对给定数据库有效。因此,如果 Drill 不支持,例如 INTERSECT
,您只需取消勾选 INTERSECT_SUPPORTED
(我转述了确切的对话术语)。
OBIEE 如何生成 sql 语句,然后 运行 针对目标数据库?我有一份报告,当针对 Oracle 数据库执行时生成一个 SQL 语句,而当通过 jdbc 驱动程序针对 Apache Drill 执行时则完全不同。我的问题是,在第二种情况下,查询甚至在语法上都无效。
我读过这个 - http://gerardnico.com/wiki/dat/obiee/query_compiler 但仍然不了解 Oracle 根据驱动程序决定要执行的实际查询的机制。
OBIEE 使用 "common metadata model" known as the RPD。它具有您的数据的逻辑模型,以及它的物理数据源。当用户运行报表时,它作为 "logical" 查询提交,然后 BI 服务器使用 RPD 编译生成针对数据源的必要 SQL 查询(或多个查询)。
而 OBIEE 使用 Hive and Impala definitely work with OBIEE, I've not heard of Drill being successfully used. If you've got the connectivity working then to sort out the query syntax it generates you need to fiddle with the DBFeatures configuration 来了解哪些 SQL 语句对给定数据库有效。因此,如果 Drill 不支持,例如 INTERSECT
,您只需取消勾选 INTERSECT_SUPPORTED
(我转述了确切的对话术语)。