《Microsoft SQL Server 2008 Analysis Services Step by Step》学习笔记二:Dimensions
SQL Server 2008中SQL应用系列及BI笔记系列--目录索引
导读:在上文本创建SQL Server Analysis Service项目的基础上,继续介绍创建标准维度(Dimensions)和时间维度、父子维度的基本过程。
本文末尾提供两个项目源码:AdventureWorks_BI_Begin和AdventureWorks_BI_End,顾名思义,开始和完成。另外,包括数据库文件SSAS2008SBS_Data,请读者自行修改数据源ds的连接串。
Tips:设计维度前最重要的一个步骤是透彻了解源数据。
打开项目,并在dsv文件,右键“View Designer”,在视图设计界面,选择“First Dimensions”图表。
其中,product维度是一个雪花型(snowfake)维度。DimProduct表通过外键与DimProductSubcategory表关联,后者又通过外键与DimProductCategory表关联。
DimDate是一个标准维度表,但为了数据能被装载到Analysis services而创建了一些计算成员。
DimEmployee表的ParentEmployeeKey列与EmployeeKey列有一个外键关联。这是一个自关联,因而Employee维度是一个父子维度(parent-child demensions)。
我们先熟悉一下源数据:
(一)创建标准维度
Tips:你必须通过向导来初始化一个维度。在此过程中你将选择源表,键及其他属性。然而,在初始化完成后,多数情况下,你可能需要通过Dimension Designer。
在项目的Dimensions目录,右键“New Dimension”
我们此时需要部署一个Analysis Services数据,步骤如下:
如果收到错误信息:
The project could not be deployed to the 'localhost' server because of the following connectivity problems : A connection cannot be made. Ensure that the server is running. To verify or update the name of the target server, right-click on the project in Solution Explorer, select Project Properties, click on the Deployment tab, and then enter the name of the server.
请启动SQL server Analysis Service服务,并设置项目属性中的Deployment中的Server属性为实际的SQL Server实例名。
(二)修改维度
维度创建完成后,需要修改,步骤如下:
选择“product”维度,右键,“View Designer”
在友好智能提示的再三劝诫下,我们还是从了她的心愿吧!
注意:你可以隐藏一个属性层次,但实际上,它还是存在的,意识到这点的用户可以写MDX查询和恢复(retrieve)层次成员。
隐藏步骤如下:
对Category和Product和Subcategory分别设置不可见。
重新部署项目,并Reconnection。
(三)创建时间维度
有了前面的基础,再新建一个时间维度就比较容易了。
修改这些属性:
注意:创建完成后,我们再来调整属性。
按照上图,修改如下属性的 NameColumn值:
修改属性关联:
部署项目,欣赏下我们的劳动成果!
因为年有重复,我们修改Month Name列:
此时,去除年份,按月份的字母排列,而不是按月份从小到大排列,需要再次修正。步骤如下:
(四)创建父子维度
父子关系(Parent-Child)是常见的一种关联关系。一种特殊的父子关系是自关联。假定一个Employee表的ParentEmployeeKey对应某个Employee的上司,而主键是EmployeeKey。当然,这只是一个简单模型,实际上一个Employee不会只属于一个上司。
注意:系统自动设置如下属性:
修改排序,且排序字段不可见:
最后一个问题:如果统计重复,如下:
处理办法:
效果如下:
当然,也可以创建一个命名模板。
还有一个基本概念:
注意:属性设置“IsAggregatable”默认为true,意味着一个属性的单个成员也会被分组统计到一个All组,即有一个总上级,若改为False,将移去All。
而设置为False时。必须同时设置默认成员:
繁忙的学习结束了!感谢耐心看完!
小结:本文介绍了三种重要的维度创建方法:标准维度、时间维度和父子维度。相信大家手动作一遍,对维度会有一个比较初步的了解。请记住:在创建维度前先熟悉源数据表。下文将一起体验下Cube的创建过程。
附: SQL Server Analysis Services 官方教程(http://technet.microsoft.com/zh-cn/library/ms170208.aspx)
源码下载: