一、确定维度
以下核对表分析数据库设计:
•
是否已将维的个数降到最低?
•
对每个维组合,提出以下问题:
o
是否有分析上的价值?
o
是否提供了报告方面的功能?
o
是否避免了多余的未使用组合?
•
是否避免了大纲中的重复?
•
是否避免了维之间的不相关性?
•
是否视需要,而对数据库进行了拆分?
1、标准维与属性维
在关系型库中的被提升为维的字段A假定与字段B中的值有某种相互关系且字段 值间为多对一(包含一对一),则可以定义多的一方为标准维,少的一方为属性维。或者B为分析数据按字段A分类的一种分析标准。
例如:客户与地区(多对一) 那么可以定义客户为标准维,地区为属性维
按价格将货物分类:低档、中档、高档,则分类为商品的属性维
2、维度组合
将相互之间有意义的维度组合在一起形成一个列表,根据一级成员间交叉关系判断 是否有分析上的价值?是否提供了报告方面的功能?是否避免了多余的未使用的组合? 如果有否的则需要继续分析维度的设置。
如: 时间 与 地区 、 产品 与 地区 、时间 与 客户........
3、如果新加入的维与其他维度没有什么关系那么考虑剔出当前维并为其建立相关应用(如果非常有必要分析)
二、维度属性设置
|
• |
是否能确定一个时间维? |
|
• |
是否能确定一个帐户维? |
|
• |
数据是否包括外国货币?如果包括,是否确定了一个货币分区维? |
|
• |
能否找出应定义为一个单独属性维的维性质或特征? |
|
• |
哪些成员需要特殊的数据存储属性? |
1、维度类型:
|
维类型 |
说明 |
|---|---|
|
无 |
不指定特定的维类型。 |
|
时间 |
定义报告和更新数据的时间段。只能将一个维标记为时间维。时间维使用户可以使用几种帐户维功能,如,期初和期末时间处的余额。 |
|
帐户 |
包含希望度量的项目,如利润和库存,并使用户可以使用 Analytic Services 的内置帐目计算功能。只能将一个维定义为帐户维。 |
|
属性 |
包括可以用来分类另一个相关维中成员的一些成员。
例如,对于每种包装类型(例如,瓶装或罐装),Pkg Type 属性维都包括一个适用于 Product 维的成员。 |
|
国家 |
包括有关业务活动发生地的数据。在国家维中,可以指定各个成员使用的货币类型。
例如,加拿大有三个市场:温哥华、多伦多和蒙特利尔。它们使用同一种货币类型:加拿大元。 |
|
货币分区 |
将应用程序中定义的基本货币与本地的货币成员加以区分。这种维类型只用在主数据库中,并且只适用于货币兑换应用程序。用于分析的基本货币可能是美元,而本地货币成员可能包括基于其所属地区货币类型的值。
2、成员存储属性
存储 该成员存储数据 默认
动态计算 当用户请求时才计算与之相关数据,不保存
动态计算并存储 用户请求时才计算与之相关数据,并保存
共享成员 该成员数据来自于另一同名的成员
永不共享
仅标签
|
三、优化维度
设计大纲时,需将属性维放在大纲末尾。密集维在稀疏维前。
1、优化查询性能
|
|
•
在大纲中,将最频繁查询的稀疏维放在较少查询的稀疏维之前。
为优化查询时间而设计大纲中展示的大纲针对最佳查询性能而进行了设计:
图 40 为优化查询时间而设计大纲
![]()
•
因为该大纲包括属性维,所以标准维和所有标准维成员的存储属性均被设置为存储数据。
•
作为最频繁查询的稀疏维,将 Product 维置于稀疏维中第一的位置。一般来说,对基本维的查询要比对其他维的查询频繁。
2、优化计算
要优化计算性能,请按成员个数对大纲中的稀疏维进行排序,将成员个数最少的维放在第一个。
为优化计算时间设计大纲中展示的大纲针对最佳计算性能进行了设计:
图 41 为优化计算时间设计大纲
![]()
•
最小的标准稀疏维 Market 位于大纲中稀疏维的第一位。
•
而最大的标准稀疏维 Product 紧接第一个属性维,位于其上。如果大纲不包括属性维,则 Product 维将位于大纲末尾。
四、加载测试数据以确定是否达到目标
五、定义计算
1、维度成员向上归集的计算关系
针对归集的核对:
确定了大纲中的合并?
用合适的合并运算符标记了每个成员?
是否为某些特定的成员指定了“共享成员”标签?
将共享内容设计在属性维(而不是共享成员)中,是否会更有效率?
运算符:+ - * / % ~ (为忽略运算,即在向上级归集过程中不包含当前项)
2、帐户维计算
时间平衡属性:期初、期末
差异报告:
二次计算:
六、
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/7477027/viewspace-462694/ ,如需转载,请注明出处,否则将追究法律责任。