SQL Server 2005 Analysis Services实践(一)
一、在Analysis Services项目中定义数据源视图
1、根据模板创建Analysis Services项目
BIDS(Business Intelligence Development Studio)利用模板创建不同类型的项目,Analysis Services项目即为其中的一个模板,而且这些模板是可自定义的。
2、定义数据源
使用Native OLE DB\Microsoft OLE DB Provider for SQL Server驱动程序连接SQL Server。
3、定义数据源视图
数据源视图(data source view,针对项目中选定的数据源的表或视图的元数据视图),将元数据存储在数据源视图中使用户可以在开发过程中脱离对数据源的连接使用元数据。可以选用多个异类查询作为数据源,但至少一个数据源必须是SQL Server数据源。
- 商品维度:Pub_商品主档
- 日期维度:Sys_销售日历
- 门店维度:Pub_仓库门店
- 供应商维度:Pub_供应商
- 事实:E1日销售明细
4、修改默认表名称
BIDS使用数据源视图中的元数据定义维度(dimensions)、属性(attributes)和测度组(measure groups)。BIDS使用立方体对象的FriendlyName属性而不使用Name属性,所以本步骤主要是修改在上一步中创建的对象的FriendlyName属性以提高用户友好性。(不仅可以更改数据源视图中表的友好名称,也可以更改列的名称,定义计算列,甚至在表或视图间进行连接以提高用户友好性)。
几个概念:
- 维度(dimension):多维立方体的基本组成部分(a fundamental component),用以从用户兴趣的角度组织数据(以合乎逻辑的层次化的格式组织商业数据)。
- 属性(attribute):维度的组成部分(building block),用以在多维立方体中组织测度。维度是属性的集合,每个属性对应维度表中的一列或多列。在维度中,属性以层次的形式组织,为立方体中的测度提供聚合向下钻取的路径。属性向客户端应用程序提供分组的受约束的信息。
- 测度(measure):事实表(fact table)中的包含可计算、合计等的数值型数据的列。在一个立方体中,测度被事实表分组为测度组。
- 测度组(measure groups):用以对事实表中包含的测度进行分组,并在维度和测度之间进行联系。
- Pub_商品主档——>product
- Sys_销售日历——>date
- Pub_仓库门店——>depository
- Pub_供应商——>supplier
- E1日销售明细——>sales
二、定义并配置立方体
1、定义立方体
立方体向导可以协助定义测度和维度。
立方体也可以在没有数据源的情况下定义。这种情况下,BIDS自动生成底层相关对象,配合SQL Server Intergration Services从相关数据库对象加载数据到Analysis Services的维度和立方体中。这种自上而下的方法一般用在原型法和假设分析(what-if analyses)中。
根据以上建立的数据源定义立方体的步骤如下:
a.选择构建立方体的方法,选择“Build the cube using a datasource”,并选中"Auto Build"。
b.选择上面定义过的数据源视图。
c.立方体向导自动检测事实表和维度表。
d.制定事实表和维度表。指定E1日销售明细为事实表,其它的均为维度表(此处为Name),并制定时间维度表为date(此处为FriendlyName)。
e.选择时间周期Date为time中的销售日期字段。
f.选择测度。测度的选择中包含了所有事实表中的数值型字段,最后一个"Sales Count"是由向导自动生成的事实表的计数字段。
g.检查维度中的属性,需要时可改变其结构,如删除不必要的如备注、图片等字段以节省空间。
2、检查立方体和维度的属性
在立方体设计器中检查由立方体向导生成的结果。立方体设计器由九个选项卡组成:立方体结构(Cube Structure)、维度用途(Dimension Usage)、计算(Calculations)、关键性能指示器(KPIS, Key Performance Indicators)、行为(Actions)、分区(Partitions)、透视图(Perspectives)、转换(Translations)、浏览器(Browser)。
a.“立方体结构”选项卡用于查看立方体的结构,立方体向导结束后即转向此页面。
1)在测度面板中可以使用鼠标拖曳改变测度的顺序。
2)在维度面板中,选择一个维度并编辑该维度时可以添加、删除和修改维度层次、级别和属性。
b."维度用途"面板用于浏览有多个测度组的立方体中每个测度组对应的维度。单击选定测度旁边的省略号弹出"定义关系(Define Relationship)"对话框,该对话框定义维度与测度的关系。如果维度表与事实表是直接连接的话,应该选择的关Regular,此时可以定义不同级别的粒度(granularity)。
在"定义关系"对话框上单击"高级(Advanced)"按钮,弹出“测度组绑定(Measure Group Bindings)”对话框,此对话框允许用户编辑每个属性的绑定字段,并允许用户指定null值的处理。
c.立方体向导使用没有聚合的MOLAP存储模式定义了一个单独的分区。在MOLAP中,所有叶子级别的(包括聚合)数据都存储在立方体中以获得最大的性能。聚合是预先计算过的数据的概要,用来减少查询的响应时间。另外,在“分区”选项卡中,可以定义另外的分区,进行存储设置和回写设置。
d.此时,由于需要将立方体部署到一个Analysis Services实例,“浏览器”选项卡下并不能浏览立方体。
3、部署Analysis Services项目
a.在"解决方案浏览器"中右键单击Analysis Services项目选择"属性(Properties)",弹出属性页上"输出路径(Output Path)"指定脚本的XMLA脚本的保存路径,"服务器(Server)"指定该项目部署的目标Analysis Services实例。
b.如果Analysis Services服务未启动,从“开始\Microsoft SQL Server 2005 CTP\Configuration Tools\SQL Server Surface Area Configuration”启动Analysis Services服务,服务的名称为MSSQLServerOLAPService。在"解决方案浏览器"中右键单击Analysis Services项目选择"部署(Deploy)"。
至此立方体部署成功。
4、浏览部署后的立方体
维度浏览器用以浏览维度的每个层次的成员。
可以立方体浏览器的“浏览器(Browser)”选项卡中浏览立方体。
一开始很奇怪为什么英文版的开发环境中的数据呈现区域显示的是中文?仔细看了一下,原来立方体浏览器的数据呈现区域使用的是Microsoft Office PivotTable。
Life is like a boat, and I'm at sea.