Johnny Shen 的Blog

-Networking MS Products

首页 新随笔 联系 订阅 管理

4.1 销售数据仓库OLAP

       以销售数量和销售额为度量,建立了以时间维、客户维、产品维、产品类别维、销售区域维等维度的销售多维数据集之后,就可以基于销售多维数据集实施OLAP分析,进而为企业管理者提供有价值的决策支持信息。使用SQL Server 2005数据仓库附带的Analysis Services可以方便直观地获得分析结果。图4-1 是按销售区域维(即客户所在地区)、时间和产品分类汇总的销售数量和销售金额。

 图4-1 按产品类别、销售区域和客户等维度分年度、季度汇总销售数据

 

       同样的,在SQL Server 2005 Analysis Services 中只须根据数据分析的需要在多维数据集中进行简单的点击和拖动,可以生成以销售数量和金额为度量,以时间维、产品类别维、客户维、销售区域维的不同组合,再考虑到比如时间维的年、季度、月等不同层次。这样,就可以从不同角度、不同的汇总级别来观察数据,获得对销售管理有价值的信息。

4.2 MDX查询和计算

       当然,在Analysis Services中利用多维数据集的浏览器来通过拖拉可以达到分析的目的,但同时MDXMultiDimension Expression,多维表达式)也提供了功能完备、基于语句的脚本语言,用于定义、使用以及从Microsoft SQL Server 2005 Analysis Services (SSAS) 中的多维对象中检索数据。MDX提供以下几种语言功能:


·用于创建、删除以及使用多维对象的数据定义语言 (DDL) 语句。

·用于从多维对象中检索操作数据的数据操作语言 (DML) 语句。

·用于管理作用域、上下文以及 MDX 脚本内的流控制的脚本语言语句。

·用于操作从多维对象中检索的数据的大量运算符和函数。

·使用用户定义函数扩展 MDX 的功能。

       MDX 在很多方面与关系数据库常用的 SQL 语法类似,但 MDX 不是 SQL 语言的扩展。事实上,MDX 所提供的一些功能也可由 SQL 提供,尽管不是那么有效或直观。下面是一段代码,用于从销售多维数据集中查询出20052006HGCVcaps两种产品的销售量和销售额。

Select

CrossJoin({[Dim Time].[Year].&[2005][Dim Time].[Year].&[2006]}

{[Measures].[Order Quantity][Measures].[Sales Amount]}) on Columns

{[Dim Item].[Item Category Name].&[HGC]

[Dim Item].[Item Category Name].&[Vcaps]}

ON Rows

From [Sales OLAP]

SQL Server Mangemnet Studio工具中,可以向运行SQL语句一样运行MDX查询语句,运行上述代码和的查询结果如图4-2

4-2 MDX查询语句与运行结果

 当然,也可以在多维数据集设计器中建立计算成员AverageSalsesPrice来获得平均销售价,并给它赋予MDX表达式[Measures].[Sales Amount]/[Measures].[Order Quantity],见图4-3

 

4-3 维计算成员赋予MDX表达式

通过再处理多维数据集后使新建计算成员加入到度量值组中。在SQL Server Mangemnet Studio工具中运行一下更新过的以下代码(斜体加黑部分系新添)可以得到图4-4的结果。

Select

CrossJoin({[Dim Time].[Year].&[2005][Dim Time].[Year].&[2006]}

{[Measures].[Order Quantity][Measures].[Sales Amount]

[Measures].[AverageSalesPrice]}) ON Columns

{[Dim Item].[Item Category Name].&[HGC]

[Dim Item].[Item Category Name].&[Vcaps]} ON Rows

From [Sales OLAP]

 

4-4 加入计算成员后的MDX查询结果

4.3 KPI分析

       KPIKey Performance Indicators,关键性能指标),为企业提供了定义自定义图形化业务衡量标准的功能,让企业关切的指标直接由多维数据集产生视觉化的结果。若要在 Microsoft SQL Server 2005 中定义关键性能指标KPI(见图4-5),应当首先定义与 KPI 关联的 KPI 名称和度量值组。KPI 可以与所有度量值组或与单个度量值组关联。然后定义以下 KPI 元素:

 

4-5 多维数据集中的KPI设计

值表达式:值表达式是物理度量值(如销售)、计算度量值(如销售平均价)或使用多维表达式(MDX)表达式在 KPI 中定义的计算。如:SUM( [Dim Time].[Year].&[2004][Measures].[Sales Amount]/[Measures].[Order Quantity])

目标表达式:目标表达式是值或者是解析为值的 MDX 表达式,它用于定义值表达式所定义的度量值的目标。例如,目标表达式可以是公司业务经理希望的年度平均销售单价。

状态表达式:状态表达式是 MDX 表达式,Analysis Services 用它来计算与目标表达式相比,值表达式的当前状态,其正常取值范围是 -1 +1-1 表示非常差,而 +1表示非常好。状态表达式用图形显示,以帮助您易于确定值表达式与目标表达式相比较的状态。如:IIf(KPIValue( "Average Sales Price in 2004" ) - KPIGoal( "Average Sales Price in 2004" ) >=01-1)

走向表达式:走向表达式是 MDX 表达式,Analysis Services 用它来计算与目标表达式相比,值表达式的当前走向。走向表达式可帮助业务用户快速确定相对于目标表达式,值表达式是否正在变得更好或更差。可以将几个图形中的某一个与走向表达式关联,以便帮助业务用户能够快速地了解走向。

4-6显示了针对销售数据仓库,2004年销售平均价是否大于202005年销售平均价是否大于182006年销售平均价是否大于15?通过再次处理多维数据集Cube,可以发现实际的销售平均单价与目标的不同以及直观的状态。

4-6   KPI浏览结果

4.4 多维数据集的更新

       多维数据集创建后,为满足用户对不断变化的数据的应用,需要定期对多维数据集进行更新。首先通过 SQL Server Integration Services中的DTS数据转换或将他设定成定期执行任务,来更新中间库,然后通过处理多维数据集来更新CUBE。当然也可对多维数据集设定一个更新任务,来定期处理该多维数据集。见下图4.7

4.7 设定任务来更新Cube

posted on 2008-11-15 10:57  Johnny shen  阅读(579)  评论(0)    收藏  举报