2.3.6.2 基于已有查询主题的查询主题

浏览: 2547

2.3.6.2 基于已有查询主题的查询主题
  模型查询主题是直接基于已有查询主题的查询项或维度建立,而不是从一个数据源。使用它,建模者可以创建一个更结合业务理论的数据库视图架构。通常,我们会将它放置到
business view(业务视图)版块,直接用于报表开发引用。模型查询主题可以称之为 数据库视图的升华和改造。模型查询主题在日常报表开发、建模时广泛使用,由于通常我们从数据库导入的元数据及其关系是及其错综复杂的,通常是一些网状关系图。若是直接取自业务数据库,若符合3NF,则一般为标准化数据结构。在组织模型和简化视图时候,模型查询主题就发挥了强大的作用:

1、重复使用已存在模型里的复杂查询SQL语句

2、引用多个查询对象的查询项到一个查询主题进行符合业务对象需求的组合

3、也可以引用不同数据源的查询主题到一个查询主题

创建步骤

Step1、右键namespace、folder->创建查询主题

Step2、输入查询主题名称、选择 ‘Model query subjects

Clipboard Image.png


Step3、在Query Subject Definition页面->Available Model Objects框里 引入查询项->OK

Clipboard Image.png

在这之前,必须为product_line,product_type,product建立关联关系,创建模型查询主题之后还须检查query items的属性(请参考2.3 检测和设计导入的元数据)

Step4、切换到Test页面,测试是否能取出数据

 Clipboard Image.png

Step5、切换到Query Information里查看生成的SQL语句

Clipboard Image.png

这里FM默认按Minimized 生成SQL语句,当然你也可以修改生成SQL的方式为 As View。

关于最小化生成SQL

将多个主题合并时,FM将仅包含最小集合的表和关联去取所选查询项的值

  关于As View生成SQL

若选择As View,FM生成的查询将包含了所有查询主题信息,且是内嵌视图模式。比如我们需要每次都返回同样值的表数据 记录行数。例如,从Great Outdoors sales数据库导入 product_type、product_line、product 表,由于业务需要,组合成星型模式,我们需要将这三个产品相关的数据表合成为一个维度信息查询主题,如下图

Clipboard Image.png


合并后生成的Cognos SQL语句,请看(图2.3.6.2 查看最小化生成Cognos SQL)。

当然若遇到特殊需要,您不想让FM最小化生成SQL,则可以更改生成SQL的类型:切换到’Query Information’tab页->点击’Options->SQL Setting->Generate SQL As View->OK如下图:

Clipboard Image.png

那么再查询Query Information查看生成的Cognos SQL语句,如下

Clipboard Image.png

同时,Framework Manager也会根据数据库类型生成相应的内嵌视图的查询 Native SQL

  通过上面的陈述相比两种SQL类型,Minimized的性能显然远超过As View。前者是Framework Manager动态生成查询SQL语句的基本功能,显然很大程度上改进了性能和运行速度。

  通过今天的讲解,想必读者对模型查询主题和SQL类型有了一定的了解,SQL类型是Framework Manager的基本功能,也是最常用的特征。无论使用哪一种类型,目的只有一个:改进模型性能和数据准确性。然而,提高模型查询的性能不仅限于这些,比如Procedure,那么它到底有些什么功能、如何灵活使用它呢?请看下一节2.3.6.3 基于存储过程的查询主题



推荐 0
本文由 贝克汉姆 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册