壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 501|回复: 0

使用一个数据库供应商的单个实例

[复制链接]
发表于 2012/3/8 13:34:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
理解关系数据库供应商技术之间的区别
处理关系数据库和 IBM Cognos BI 时,您可能会遇到以下情况:您正在联接来自同一个数据库供应商实例的多个项,但通过 IBM Cognos Connection 中定义的多个不同 IBM Cognos BI 数据源连接。在这种情况下,BI 服务器将以本地方式联接来自各个已定义 BI 数据源连接的数据。这种行为可能理想,也可能不理想。如果不理想,您可以配置 Framework Manager,将处理工作推到数据库供应商。
下面将解释不同的数据库供应商技术是如何表现的,元数据在导入过程中如何出现,以及如何配置您的模型以便在必要时将处理工作推到数据库。
关于数据库供应商如何处理他们的对象的资格问题,有几个不同的场景。例如,有些供应商只有实例概念和一个对象集合,比如表和引用。本文只关注两个最常见的场景,本文称其为 Scenario A 和 Scenario B。
Scenario A — 实例和架构
在 Scenario A 中,供应商拥有实例概念(计算机上运行的数据库软件)和架构概念(有些供应商也将架构称为 “用户”)。图 1 展示了一个名为 A 的单一实例,它包含 4 个架构,分别命名为 A、B、C 和 D。这种场景的一个供应商示例是 Oracle。

图 1. Scenario A — 示例和架构
attachimg.gif 1106301030cd3b5d06dfbc02ec.png


在这种情况下,您在 IBM Cognos BI 中为数据库供应商实例创建一个 IBM Cognos BI 数据源,并拥有对其中的所有架构的访问权。图 2 展示了 Framework Manager Metadata Wizard 导入流程的 Select Objects 屏幕,其中,实例名称(Oracle)位于元数据树顶端,各个架构(比如 CM、GOSALES 等)是实例的直接子实例。

图 2. 显示实例和架构的 Oracle 示例的 Framework Manager Metadata Wizard
1106301030c8086f4aa19baa37.png



您可以根据需要从多个架构导入项目并从多个不同的架构导入联接表。在这个场景中,如果数据库供应商支持查询,那么 IBM Cognos BI 会将跨架构联接处理工作推到数据库供应商。
Scenario B — 实例、目录和架构
在 Scenario B 中,供应商拥有以下概念:实例(同样是计算机上运行的数据库软件)、目录(有些供应商也称为 “数据库”)和架构(同样被一些供应商称为 “用户”)。图 3 展示了一个名为 A 的实例和两个分别名为 A 和 B 的目录。目录 A 包含两个架构,分别名为 A 和 B。目录 B 也包含两个架构,分别名为 C 和 D。这个场景的一个供应商示例是 Microsoft SQL Server。

图 3. Scenario B — 实例、目录和架构
11063010310bad164a661498b9.png


在这个场景中,必须在 IBM Cognos BI 中为想导入的每个目录创建一个 IBM Cognos BI 数据源。图 4 显示了 Framework Manager Metadata Wizard 导入向导的 Select Objects 屏幕,其中实例名称(GOSALES)位于元数据树顶端,下面是各个架构,比如 gosales、gosaleshr 等。

图 4. 显示实例、目录和架构的 Microsoft SQL Server 示例的 Framework Manager Metadata Wizard
1106301031c85a80253a741868.png



在 Scenario B 中,如果您想从其他目录导入其他元数据,则需要用到每个目录的另一个 IBM Cognos 数据源连接。从各个目录导入项目之后,您可以从一个目录到另一个目录联接项目。例如,图 5 显示了一个来自 C8-Bursting 目录(数据库)的表,该表联接到来自相同 SQL Server 实例的 GOSALESDW 目录(数据库)的另一个表。

图 5. 展示来自同一个实例的两个 SQL Server 数据库之间的联接的 Framework Manager 图表
1106301032c6960ef7e6eac054.png


但是,当您从每个目录查询来自已联接查询主题的项目时,IBM Cognos BI 将每个目录视为不同的数据源,因为没有足够的信息表明它们是相同的实例。事实上,即使您针对同一个实例和目录在 IBM Cognos BI 中创建两个数据源,IBM Cognos BI 仍然会将它们视为不同的实例。无论如何,这将阻止 IBM Cognos BI 将目录之间的联接推到数据库供应商。这一点可以通过查看这样一个查询的原生 SQL 看出。
例如,图 6 显示了一个从 Burst_Table 查询 Recipients 并从 SLS_SALES_TARGET_FACT 查询 SALES_TARGET 的查询生成的 SQL。图 6 中的 Cognos SQL 显示了表间的一个联接,但原生 SQL 没有这样的联接,它显示两个独立选择语句(如下突出显示部分所示)。这表明两个独立结果集将被检索并在 IBM Cognos BI 服务器上本地联接。

图 6. 显示带有两个独立选择语句的 Native SQL 的 Framework Manager 测试结果集
110630103246f8f1d1e6fcd4c4.png


如果理想的方法是将联接推到数据库实例,则只需更改 Framework Manager 模型中的 Data Source 属性,将它们都指向一个 IBM Cognos BI 数据源连接。
本例涉及两个数据源,每个都有不同的属性设置,如图 7 和图 8 所示。great_outdoors_warehouse 数据源的 Content Manager Data Source 属性指向 great_outdoors_warehouse,而 C8-Bursting 数据源的相同属性则指向 C8-Bursting。

图 7. great_outdoors_warehouse 数据源的 Framework Manager - Data Source Properties 窗格
110630103490a501b55e4f3130.png


要将两个目录之间的联接向下推到数据库供应商,只需将这两个 Content Manager Data Source 属性指向同一个 IBM Cognos BI 数据源名称。这告知 IBM Cognos BI 使用同一个数据源实例但使用该实例中的两个不同的目录。在本例中,C8-Bursting 数据源实例应将它的 Content Manager Data Source 属性改为指向 great_outdoors_warehouse,如图 9 所示。

图 9. Content Manager Data Source 名称更改为匹配 great_outdoors_warehouse 数据源名称的 Framework Manager - Data Source Properties 窗格
1106301034a3847264db38f4e8.png


现在,当同一个查询运行时,生成的原生 SQL 是单个选择语句,在语句在数据库层联接来自不同目录的两个表,如图 10 所示。

图 10. 显示 Content Manager Data Source 属性更改后带有单个选择语句的 Native SQL 的 Framework Manager 测试结果
1106301035599f177526d081f8.png

该贴已经同步到 xiaoerp的微博
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/30 01:37 , Processed in 0.025179 second(s), 15 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表