《分析服务从入门到精通读书笔记》第四章、父子维度补充篇

目的

在许多组织中,管理者有他们个人的工作指标和基于团队的工作指标。在这些情况下,管理者的名字需要在Employees维度中出现两次。同时,还需要判断这两个名字实例中,那个代表管理者自身的工作指标,那个代表他的团队的工作指标。我们通过父子维度来管理好这两种指标。

内容

下图展示了David  Bradley团队的Employee维度的一小部分。David Bradley作为父成员的实例代表了其团队的工作指标。通常情况下,这是团队成员的累加或平均值。David Bradley作为子成员的实例代表了他个人的工作指标。子成员也被称作数据成员。我们可以对他们做标记,使其容易识别。我们此处“(Direct)”作为后缀被加到David Bradley数据成员的名称中。

我们来修改Employees属性来标记数据成员,这里还是应用上节的例子。为了标记属性成员(data member),必须要修改父属性的MemberWithDataCaption属性。

1、在“属性”窗格中右击Employee属性并选择“属性”

2、在“属性”窗口中,滚动到“父子”组,并选择MemberWithDataCaption属性,输入*(Direct)

这时候,当我么浏览父子层次结构时,MembersWithDataCaption属性中的第一个星号(*)将被成员名代替。

现在,我们已经创建了Employee维度,我们部署一下,浏览下数据,看是否正确。

在上一节的文章中,我们已经吧End Date属性的AttributeHierarchyVisible属性层次都被设置成了false,所以Employees是“层次结构”列表中唯一的一个层次结构。

我们选择Employees层次结构,在“级别和成员”窗口中,以此展开All、Ken Sanchez和David Bradley成员,选择Wanida Benshoof

我们以此展开各个结点,可以看到,Employees每个不对称的层次结构,每个子数据成员和父成员名称相同,只不过后面新添了后缀(Direct)

用户自定义的层次结构中,级别的名称默认认为用于创建该级别的属性名。如果愿意,可以对级别重命名。在父子层次结构中,许多级是有单个属性创建的。级别的默认名称是Leavel01、Leavel02以此类推,通过创建级别命名模板,我们可以对其父子层次结构中的级别进行重命名。

下面我们为父子层次结构川剧级别的名称模板

1、选择“维度结构”选项卡,在“属性”窗格中,右击Employees属性并选择“属性”

2、在“属性”窗口中,滚动到“父子”组,选择NamingTemplate属性,然后单击出现在右边的浏览按钮

3、在“级别命名模板”对话框中,在星号边的区域中输入CEO

4、重复上述步骤,然后以此命名这些级别

我们可以浏览一下数据,这里就可以看到我们的新建的属性层次了

这里还有一个缺陷,在Employee维度中,其实All成员是多余的,因为All层里面就一个成员Ken Sanchez,也就是说这是最顶层。我们来尝试下将All级别去掉

1、选择“维度结构”选项卡,在“属性”窗格中,右击Employees属性并选择“属性”

2、在“属性”窗口中,滚动到“高级”组,将IsAggregatable属性值设置为False

提示:IsAggreable属性为True意味着属性的单个成员能被概括成All成员,将该属性设置成False就能把All成员从属性层次中移除。

但是这里产生了一个新问题,那就是,移除All之后,Employees属性产生了一个设计警告,警告为:在DefaultMember属性或多维数据集的MDX脚本中国定义不可聚合的属性的默认成员。

这个问题是因为,在我们新建属性时,就有All成员,分析服务把它作为默认成员,当移除All成员时,也就同时移除了默认成员。我们可以重新使用DefaultMember属性制定一个新的默认成员

1、在“属性”窗口中,右击Employees属性并选择“属性”

2、在“属性”窗口中,滚动到“高级”组,选择DefaultMember属性,然后单击右侧出现的带有省略号的浏览按钮

3、在“设置默认成员”对话框中,选择“选择要作为默认成员的成员”

4、选择Ken Sanchez

单击“确定”,此时,Employees属性设计警告消失了。

总结 

   到此,我们第四章练习建立数据维度已经完成,后面将讲述多维数据集的建立及应用,这章中我们使用了维度向导分别创建了标准、时间和父子维度,并使用维度设计器进一步增强了这些维度。为了提高分析服务的查询性能,我们创建了属性关系。为了方面用户浏览多维数据集,我们添加了用户定义的层次结构。通过修改属性值,可以使其显示猫属性的名称、隐藏属性层次结构、改变属性排列顺序、去除All成员、提供带有级别名称的父子层次结构等。

想理解好多维数据的分析,必须把握好数据表之间是如何转换的,也就是先抓好第一章我们介绍的那张数据表是如何多维转换的,深层次掌握,才能使用BIDS工具更迅速的建立出维度。

本章完。

posted @ 2012-03-11 21:50  指尖流淌  阅读(1172)  评论(0编辑  收藏  举报