1 / 24
文档名称:

cognosFrameworkManager10建模(DOC).pdf

格式:pdf   大小:1,577KB   页数:24页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

cognosFrameworkManager10建模(DOC).pdf

上传人:我是开始 2023/3/20 文件大小:1.54 MB

下载得到文件列表

cognosFrameworkManager10建模(DOC).pdf

相关文档

文档介绍

文档介绍:该【cognosFrameworkManager10建模(DOC) 】是由【我是开始】上传分享,文档一共【24】页,该文档可以免费在线阅读,需要了解更多关于【cognosFrameworkManager10建模(DOC) 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:.
为什么需要元数据模型
您已经熟悉使用Cognos来创建报表,进行自助式设计分析,然而这些需要的创建的应用
都依赖于对应的元数据模型,用户使用元数据模型对他们的数据源进行分析和报告。元数据
模型是整个Cognos应用的基础,它是一个或多个数据源中信息的业务演示。基于这个基
础,您才能够创建报表,进行自助式设计分析。
Cognos能支持多种数据源,包括关系型的和多维的数据库。元数据模型能隐藏底层数据源
的复杂结构,可以更好地控制数据怎样展现给最终用户。元数据的组织和扩展就需要用到
Cognos的元数据模型设计工具FrameworkManger。
Cognos的元数据模型设计工具FrameworkManger可以连接企业的各种数据源(包括关系
型数据库,多维数据库,文本,OLAP等),对数据结构进行描述,为Cognos的多维分析,
即席查询,报表等各种应用提供统一一致的数据视图,降低对企业数据访问的复杂性,同时
提供对各种应用使用的结构的统一的管理。
CognosBI10的最新版本中在FrameworkManager中增加了模型设计加速器,可以帮助开
发人员更迅速、更轻松的创建新模型,并且模型优化时系统将充分利用知识库的经验。它的
主要功能是:
帮助开发人员通过一个向导式的自动化工具,用快速简便的方法创造新的建模框架。
从一个包含了知识库经验的模型开始建模,并添加更复杂的模型需求。
通过知识库的经验指导建模和帮助纠正和验证的常见错误。
第一个元数据模型
,选择Createanew
projectusingModelDesignAccelerator。模型设计加速器适合于基于关系型数
据库星形模型的元数据建模。星形模型是一种多维的数据关系,它由一个事
实表(FactTable)和一组维表(DimensionTable)组成。
“NewProject”中输入名称“第一个元数据模型”和目录位置,如图1所示。
当在FrameworkManager中工作时,实际上是在一个Project中进行操作
的。Project以一个文件夹的形式出现在文件系统中,它包含一个Project文
件(.cpf)和XML文件。

,在本教程中是administrator和cognos,然
后点击确定。语言选择“英文”,数据源选择“great_outdoors_warehouse”。:.
,展开GOSALESDW的Tables,选择以下表后点击
Continue。
GO_TIME_DIM
SLS_ORDER_METHOD_DIM
SLS_PRODUCT_DIM
SLS_PRODUCT_LOOKUP
SLS_PRODUCT_TYPE_LOOKUP
SLS_PRODUCT_LINE_LOOKUP
SLS_SALES_FACT

DesignAccelerator的步骤,您阅读后点击Close。
,右键选择FactQuerySubject,选择Rename,
输入SalesFact。
,展开SLS_SALES_FACT,选择以下字段拖拽到Sales
Fact对象。
QUANTITY
UNIT_COST
UNIT_PRICE
UNIT_SALE_PRICE
GROSS_MARGIN
SALE_TOTAL
GROSS_PROFIT

:
展开SLS_PRODUCT_LINE_LOOKUP拖拽PRODUCT_LINE_EN
到Products对象。
展开SLS_PRODUCT_TYPE_LOOKUP拖拽
PRODUCT_TYPE_EN到Products对象。
展开SLS_PRODUCT_LOOKUP拖拽PRODUCT_NAME到
Products对象。
:Products会弹出来,原因是
FrameworkManager无法检测出SLS_PRODUCT_LOOKUP和
SLS_SALES_FACT的关系,因此需要手动指定。按住Ctrl选择
SLS_PRODUCT_LOOKUP的PRODUCT_NUMBER和
SLS_PRODUCT_DIM的PRODUCT_NUMBER,点击左上角的Createa
ModelRelationship按钮。在ModifytheRelationship对话框中点击OK,然
后点击OK关闭RelationshipEditingModefor:Products对话框,如图2
所示。
:.
,选择以下字段拖拽到
Products对象。
PRODUCT_KEY
PRODUCT_LINE_CODE
PRODUCT_TYPE_KEY
PRODUTCT_TYPE_CODE
PRODUCT_NUMBER
PRODUCT_IMAGE
INTRODUCTION_DATE
DISCONTINUED_DATE

,展开GO_TIME_DIM,选择DAY_KEY再按住Shift
键选择WEEKDAY_EN,把包含这两个字段的中间所有字段拖拽到Time
对象。

,展开SLS_ORDER_METHOD_DIM,选择以下字段
拖拽到OrderMethods对象。
ORDER_METHOD_KEY
ORDER_METHOD_CODE
ORDER_METHOD_EN
。点击GenerateModel
按钮,提示框选择Yes,模型设计加速器会根据您的选择来生成模型。当生:.
成结束后,IBMCognosFrameworkManager的界面就会展示在您的面前。

,您的第一个元数据模型就创建成功了。
在FrameworkManager的ProjectViewer中可以看到模型的层次,如图4所示。模型设计
加速器已经为您设计了模型的三个命名空间PhysicalView、BusinessView和Presentation
View。
oPhysicalView是包含支持星型模型的表。
oBusinessView是包含需要的查询字段。
oPresentationView是包含在BusinessView的快捷方式。
:.
已同步至bruce_lee的微博
导入额外元数据模型
前面您用ModelDesignAccelerator构建了您的第一个元数据模型。接下来您可以用
MetadataWizard来手工添加其他元数据,包括导入元数据,创建关系,更新BusinessView
和PresentationView。
,右键选择Physical
View下面的gosalesdw命名空间,选择RunMetadataWizard。

“great_outdoors_warehouse”数据源后Next。
,展开GOSALESDW的Tables,选择
SLS_SALES_TARG_FACT后Next。

model,如图5所示。点击Import然后点击Finish。
:.
,然后选择Diagram标签页来查看关系的图形,
如图6所示。您可以看到刚导入的SLS_SALES_TARG_FACT没有对象连
接,需要您手工创建。
:.
,选择GO_TIME_DIM下的MONTH_KEY,再选
择SLS_SALES_TARG_FACT下的MONTH_KEY,右键选择Create,再
点击Relationship。关系定义对话框如图7所示,点击确定。
:.
,创建SLS_PRODUCT_DIM和SLS_SALES_TARG_FACT
在PRODUCT_TYPE_KEY字段的关系。
,右键选择BusinessView命名空间,点击创建,选
择QuerySubject,输入SalesTargetFact后点击OK。
,在AvailableModelObjects下展开
PhysicalView,在gosalesdw下选择SLS_SALES_TARG_FACT,把
SALES_TARGET拖动到QueryItemsandCalculations面板下,如图8所
示。
:.
,
按住Ctrl再选择Products和Time,也就是刚才定义过关系的维度,右键
选择CreateStarSchemaGrouping。在CreateStarSchemaGrouping对话框
输入SalesTarget后点击OK,如图9所示。


,点击Create,然后选择Namespace,
把名字定义为Sales。接着把SalesFact、Products、Time和OrderMethods:.
的快捷方式拖动到Sales命名空间,如图10所示。

点击工具栏上的保存按钮,您已经完成了导入额外元数据模型的工作。
设定Determinants
Determinants是IBMCognosBI的特性,通常来用来控制聚合的粒度。当维度数据和事实
数据基于有重复值的粒度层次关联时候就需要Determinant。
Determinants反映了代表查询对象的子集或集合,是用来保证准确的数据聚合。Determinants
可以定义唯一标识一个数据集的数据库列集合,或者可以指定一个能够标识数据中的非唯一
集的列集合。
在您的元数据模型中,日期是时间的惟一性determinants。而非惟一determinants的例子是
月份,在同月的时间中月份是重复的,在指定月份的非惟一determinants时候就要指明是
GroupBy。这样就暗示IBMCognos在处理到非惟一determinants的属性时候有重复数据,
需要采用聚合函数来避免重复计数。
,双击GO_TIME_DIM查
询对象,然后点击Determinants标签页。您可以看到只有根据主键的一个
determinant,下面您可以添加Year、Quarter、Month作为Determinants。
,点击Rename,输入Day然后回车。
,点击Add,右键选择NewDeterminant,点击
Rename,输入Year然后回车。
,把CURRENT_YEAR拖拽到Key窗格。

,添加Quarter作为determinant,QUARTER_KEY
拖拽到Key窗格,选择GroupBy的复选框。
,把CURRENT_QUARTER拖拽到Attributes窗格。
Attributes是与determinantkey相关的数据项。如果Attributes使用在报表
中,则Key就会用在基于聚合函数的SQL中。
,添加Month作为determinant,MONTH_KEY拖
拽到Key窗格,选择GroupBy的复选框。
,把下列字段拖拽到Attributes窗格。
CURRENT_MONTH
MONTH_NUMBER
MONTH_EN
,调整顺序依次为Year、Quarter、Month、Day。最后点击OK,
如图11所示。:.

在您的模型中SLS_PRODUCT_DIM维度也存在类似的问题,您可以仿照上面的步骤,添
加Productline和Producttype两个Determinants,如图12所示。Productline的Key是
PRODUCT_LINE_CODE,而Producttype的Key是PRODUCT_TYPE_KEY。

增加业务逻辑
通常会把业务逻辑放在BusinessView这个层次的,比如过滤和计算。有些时候为了考虑性
能和维护成本,也会放到PhysicalView这个层次。:.
在您的模型中,SLS_PRODUCT_LOOKUP是支持多语言的,为了正确返回ProductName,
需要添加过滤条件。从性能角度考虑,这个过滤放在PhysicalView这个层次可以避免返回
额外的数据记录。
过滤
过滤被用来限制查询主题所检索的记录。FrameworkManager有两种过滤:
o内嵌式Embedded:面向单个查询主题。
o独立式Stand-alone:可重复使用。
接下来您将采用内嵌式过滤来让SLS_PRODUCT_LOOKUP返回英文的产品名称。
,PhysicalView下的gosalesdw命名空间,双击
SLS_PRODUCT_LOOKUP,选择Filters标签页,点击Add。在Name编
辑框输入LanguageFilter。
,双击PRODUCT_LANGUAGE。在
ExpressionDefinition面板输入=‘EN’。
FrameworkManager中的对象有一个标识符,可以拥有相同的名字,但是必须使用一个名字
空间进行唯一标识。查询项有一个三部分的标识符[namespace].[querysubject].[queryitem]。
:
[GOSALESDW].[SLS_PRODUCT_LOOKUP].[PRODUCT_LANGUAGE]=
'EN',如图13所示。然后点击OK。

,点击TestSample,查看结果后再点击OK。
计算
您可以创建计算来给报表作者提供他们经常使用的值。计算可以使用查询项、参数、函数。
有两种类型的计算:
o内嵌式Embedded:面向单个查询主题。
o独立式Stand-alone:可重复使用。
接下来您将采用内嵌式计算来生成盈亏平衡点Quantity*UnitCost。
,BusinessView命名空间下双击SalesFact,点击右
下角的Add。在Name编辑框输入BreakEvenPoint。
,双击Quantity。点击Functions标签页,双
击*。点击Model标签页,双击UnitCost。
最后计算公式为:[BusinessView].[SalesFact].[Quantity]*[BusinessView].[SalesFact].[Unit
Cost],如图13所示。点击TestSample按钮,查看结果后再点击两次OK。
:.
维度建模关系
您前面已经使用标准关系建模,设计的元数据可以在ReportStudio中用基本关系即席查询
和报表。此外,在IBMCognosBI中,还可以使用维度建模关系建模DimensionallyModeled
Relational简称DMR。维度建模关系建模指的是一个建模人员为关系型数据源提供的允许
进行OLAP风格查询的维度信息,这样就能在BusinessInsightAdvanced访问成员函数,
进行自主式设计分析和向上、向下钻取。
维度建模关系建模通过以下元素定义:
o常规维度RegularDimensions
o度量维度MeasureDimensions
o范围关系ScopeRelationships
常规维度
常规维度表达的是描述性数据,这些数据为度量维度中建模的数据提供上下文。常规维度由
一个或多个用户定义的层次结构组成,这些层次结构由层、键、标题和属性组成。
常规维度可分解为称为“级别”的信息组。反过来,各级别可以组织为层级。例如,产品维度
可以包含组织到单一层级(称为Product)中的级别ProductLine、ProductType和Product。
另一个示例是时间维度,包含组织到两个层级中的级别Year、Quarter、Month、Week和Day。
一个层级YQMD包含级别Year、Quarter、Month和Day,另一个层级YWD包含级别
Year、Week和Day。
最简单的级别定义包含业务键和标题,其中任意一项都引用一个查询项目。级别的实例(或
行)定义为该级别的成员。它由成员的唯一名称标识,它是一个五部分的标识符,
[namespace].[dimension].[hierarchy].[level].[queryitem]。
如果级别的业务键足以标识级别的每个数据集,则可将级别定义为唯一级别。比如Product
级别的成员是唯一级别,因为它不需要ProductType的定义。未定义为唯一级别的级别类
似于非惟一determinants,比如月份。
,右键点击Model选择Create,然后点击
Namespace,命名为DimensionalView。
,然后点击RegularDimension。
,展开BusinessView下的Time,拖拽
CURRENT_YEAR到Hierarchies窗格。
,点击Rename,输
入Time。
(All)重命名为Time(All),把最下面的
CURRENT_YEAR重命名为Year。
,在下方窗口的Role选择_businessKey,然后点击Close。
,命名为YearCaption,在AvailableComponents窗口
展开BusinessView下的Time,把CURRENT_YEAR拖拽到Expression:.
definition窗口。编辑表达式为:cast([Business
View].[Time].[CURRENT_YEAR],char(4))后点击OK。
,然后点击
Close。


Year层下方。重命名为Quarter,然后指定QUARTER_KEY为
_businessKey的Role。
,添加QuarterCaption项,表达式为cast([Business
View].[Time].[CURRENT_QUARTER],char(1))。指定Role为
_memberCaption。

Quarter层下方。重命名为Month,然后指定MONTH_KEY为
_businessKey的Role。
,选择
_memberCaption。

层下方。重命名为Day。注意DAY_KEY已经是_businessKey的Role,
这是因为DAY_KEY是表的主键,属性是Identifier。
,选择
_memberCaption。命名为DayCaption。点击Source编辑定义为
cast([BusinessView].[Time].[DAY_DATE],char(10))。点击OK,因为日期是
唯一的,勾选UniqueLevel选项。
:.

,比如利用Lag函数查看当前月和上月的数据
就需要成员排序。点击MemberSort标签页,在SortingOptions中,勾选
Metadata、Data和Always(OLAPcompatible)。点击Detect来检测用在
LevelSortProperties定义的字段,如图17所示。最后点击OK。


,在您的模型中添加Products维度,结果如图18所
示。在Availableitems窗格,展开BusinessView下的Products。
ProductLine层的_businessKey是PRODUCT_LINE_CODE。:.
ProductLine层的_memberCaption是PRODUCT_LINE_EN。
ProductType层的_businessKey是PRODUCT_TYPE_KEY。
ProductType层的_memberCaption是PRODUCT_TYPE_EN。
ProductName层的_businessKey是PRODUCT_KEY。
ProductName层的_memberCaption是PRODUCT_NAME。

,在您的模型中添加OrderMethods维度,结果如图
19所示。在Availableitems窗格,展开BusinessView下的Order
Methods。
OrderMethods层的_businessKey是ORDER_METHOD_KEY。
OrderMethods层的_memberCaption是ORDER_METHOD_EN。
:.
度量维度
度量维度是一个事实逻辑集合,可以实现对关系型数据源进行OLAP风格的查询。度量维
度是表达常规维度所描述的数量数据。接下来您将创建度量维度。
,选择Create,然后点击MeasureDimension。
,展开BusinessView下面的SalesFact,按住Shift
选择从QUANTITY到BreakEvenPoint的所有字段,拖拽到Measures窗
格,如图20所示。

。重命名newDimension为SalesFact。:.
,创建SalesTargetFact的MeasureDimension,选
择BusinessView下面SalesTargetFact的SALES_TARGET。
范围关系
范围关系仅存在于度量维度和标准维度之间,定义可以用于报表的度量所在的层。在范围关
系中没有设置控制查询生成方式的条件,因此前面的关系定义仍然需要,以便生成SQL语
句。如果度量维度和标准维度之间有关系定义的话,范围关系会自动创建,比如您的模型就
会自动创建范围关系。
,选择Diagram标签您可以看到范围关系
如图21所示。您可以双击关系来编辑范围,接下来用DimensionMap标
签来编辑范围关系会更容易。

,点击SalesTargetFact,可以看到所有的维度都
是高亮显示,这表明目前都在范围内。现在您想让OrderMethods不在Sales
TargetFact范围内,而且SalesTargetFact的范围只能是Time的Month
层和Products的ProductType层。
,工具栏上点击S