Johnny Shen 的Blog

-Networking MS Products

首页 新随笔 联系 订阅 管理
Research and realization of OLAP Technology on SQL Server 2005

Abstract The OLAP concept and features is reviewed briefly. The unified dimensional model in SQL Server 2005 is explained. The difference between Microsoft new OLAP and traditional OLAP structural design is studied. By a OLAP practical example based on the enterprise sales data cube, to show the feasibility of design with Microsoft new OLAP concept, and helpful to promptly build a platform of enterprise decision support with it.
Key words
OLAP(OnLine Analytical Processing),Cube,UDM(Unified Dimensional Model) 

1 引言

    近年来,随着企业信息化的飞速发展,企业拥有大量业务数据但难以及时有效的提取经营管理者所需要的信息这一问题,数据仓库技术应运而生。如何有效的组织大量 数据,维护数据的一致性,方便用户访问,这只是数据仓库技术的一个方面。数据仓库技术的另一个方面是如何为经营管理人员提供有效的使用信息,使他们能够使 用数据仓库系统,对企业的经营管理作出正确的决策,从而为企业带来经济效益。要达到这个目的,就要借助OLAP技术。

 

2 OLAP概念

      联 机分析处理(OLAP)的概念最早是由关系数据库之父E.F.Codd于1993年提出的。当时,他认为联机事务处理(OLTP)已不能满足终端用户对数 据库查询分析的需要,SQL对大数据库进行的简单查询也不能满足用户分析的需求。用户的决策分析需要对关系数据库进行大量计算才能得到结果,而查询的结果 并不能满足决策者提出的需求。因此Codd提出了多维数据库和多维分析的概念,即OLAP。

    OLAP主 要有两个特点,一是在线性(On-Line),表现为对用户请求的快速响应和交互式操作,它的实现是由Client/Server这种体系结构来完成的; 二是多维分析(Multi-dimensional Analysis),这也是OLAP技术的核心所在。OLAP的在线性体现在与用户的交互和快速响应,多维性则体现在它建立在多维视图的基础上。用户积极 参与分析过程,动态地提出分析要求、选择分析算法,对数据进行由浅及深的分析。OLAP的用户是企业中的专业分析人员及管理决策人员,他们在分析业务经营 的数据时,从不同的角度来审视业务的衡量指标是一种很自然的思考模式。例如分析销售数据,可能会综合时间周期,产品类别,分销渠道,区域分布,客户等多种 因素来考虑。这些分析角度虽然可以通过报表来反映,但每一个分析的角度可以生成一张报表,各个分析角度的不同组合有可以生成不同的报表,使得IT人员的工 作量相当大,而且往往难以跟上管理决策人员思考的步伐。所以OLAP的多维性较好地满足了企业管理人员的需要。管理人员可对OLAP进行操作,即对多维数 据集中的数据进行切片、切块、旋转、上卷和下钻操作,以对数据进行分析,让用户多角度、多侧面地去观察数据仓库中的数据,从而深入了解数据仓库中数据所蕴 含的信息,并找出隐含在数据中的商业模式。

    根据综合性数据的组织方式的不同,目前常见的OLAP主要有基于多维数据库的MOLAP及基于关系数据库的ROLAP两种。MOLAP是以多维的方式组织和 存储数据,ROLAP则利用现有的关系数据库技术来模拟多维数据。在数据仓库应用中,OLAP应用一般是数据仓库应用的前端工具,同时OLAP工具还可以 同数据挖掘工具配合使用,增强决策分析功能。

      数据仓库的基本任务是使用获得的数据来进行大量的分析,以生成支持用户制定战略决策的信息。为了让数据仓库能作有意义的分析,数据必须以某种方法被映射,以便用户能利用这些数据来分析随着时间变化各商业维度的关键指标的数值。

      具体而言,联机分析主要满足多维分析。对于销售数据的检索,不能仅仅满足于一维查询。要将日常的销售数据加工成支持用户制定战略决策的信息,就必须与销售日 期、产品、客户、销售区域、等结合起来,生成多维视图。以某公司为例,在进行产品销售分析时,不能仅考虑某月某区域总销量和总销售收入为多少,还必须考虑 诸如:某产品在第一季度取得多少销售收入?该产品在各个区域具体每月销售情况如何?等等。为了进行有效的分行,用户必须要有简单的方法沿着多个商业维度来 执行复杂的分析。因此必须给用户提供一个简单的、灵活的信息访问来为分析处理提供必要的查询,使用户能沿着任何维度数在任何聚集水平上对数据进行分析,使 用户能沿着每个维度的不同层次下钻和上卷数据来满足对数据的快速访问和计算。无论用户是请求查询所有区域所有产品每个月的销售额,还是请求查询某个区域某 个产品从年度到一天的销售额,查询和分析系统的反应时间都必须一致,系统不能因为所分析的复杂度增加而使反应时间加长,即用户建立一次查询所耗费的精力和 等待查询结果集的时间都必须和这个查询的类型无关。

3 SQL Server 2005 OLAP

    在SQL Server 2000正式发布的5年之后,微软才推出了SQL Server 2005,其研发过程可谓漫长,其中的技术更新和功能增强也是非常可观的。作为SQL Server 2005主打的商业智能概念,微软提出了OLAP建模领域内的全新新概念-统一维度模型UDM(Unified Dimensional Model)和搭建OLAP系统新方法。

3.1 OLAP建模新概念-UDM

UDM(统一维度模型)是以SQL Server Analysis Services(SSAS)作为商业智能开发的入口,使用户能够通过统一的结构直接访问多个异类数据源,并对查询、数据和元数据使用一种统一的传输方法。

 

 

图1 UDM(统一维度模型)的整合理念

UDM(统 一维度模型)的整合理念(图1)显示在数据模型的层次上,可将多个模型统一成为一个模型。这个统一维度模型可以连接到后台不同的数据源,支持非SQL系列 的异构数据库,包括SQL2000体系下的多维结构存储数据集MOLAP。对于前台的客户端,无论它是OLAP用户还是报表用户,他所看到的知识UDM这 样一个统一的模型,而无需考虑底层的数据源分类和分布。UDM则通过XML/A或者ODBC标准接口,向客户端提供完整的数据和功能支持。UDM分别实现 多维分析模型的不同功能如下:

l       数据源视图(Data Source View):通过数据库连接引擎,从异构关系型数据库中获取数据。

l       基本维度模型(Basic Dimensional Model):建立多维结构,按照分析的模式设计聚合和计算,并进行存储。

l       计算器(Calculations):设计、定义新的专门计算,并将其作为分析的一部分;

l       高级客户端模型(End-User Model):设计、定义高级计算和操作方法,实现数据表现形式等方面的扩展。

    具 体来说,UDM(统一维度模型)是SQL Server 2005 Analysis Services提供的一个元数据模型:它是连接数据仓库和前台分析客户端的中间层;将异构数据库作为自己的数据源;同时被所有报表、电子表格、OLAP 浏览器、分析应用程序等客户端当作数据源来使用。它是SQL Server 2000中多维分析模型(Cube)概念的扩展和延伸。

实 际上,在SQL Server 2005 Analysis Services中创建项目的过程,就是UDM的建模过程。在OLAP服务器上,UDM体现为一个多维数据库。前台客户端通过连接此多维数据库,使用其中 的元数据进行分析操作。所以说,UDM并不是SQL Server 2005 提供的一个简单的工具,它提供了一个更高级的BI的开发方法。UDM被看作是OLAP多维数据集(Cube)的下一代技术,它的统一报表模型结合了 OLAP技术和关系型报表的优势。

3.2 搭建OLAP系统新方法

      在SQL Server 2000中,如果想去开发一套OLAP系统,必须按照“由下至上”(如下图2)这种方式来进行:

 

 

图2 “由下至上”的方法

    顺序为:建立数据仓库—〉搭建Cube—〉应用OLAP分析;将这一顺序迁移至SQL Server 2005的环境中,就转变为:建立数据仓库—〉建立数据源视图—〉创建Cube—〉使用前端分析工具。

    在 这种开发方法中,我们首先需要创建数据仓库,在这个数据仓库中将会包括维度表和事实表。接下来按照数据仓库来创建维度和多维数据集(Cube)。在这些都 完成之后,就可以向数据仓库中加载我们的测试数据,然后在处理我们的多维数据集,最后我们通过前端分析工具(如Excel)对多维数据集进行展现。这时, 问题出现了。往往在利用前端展现工具测试多维数据集的时候,会发现我们的多维数据集构建的不够理想。我们在构建数据仓库的时候,经常会有很多因素没有考虑 进去,导致最后展现的结果不正确,然而这些因素只有在最后展现的时候才能发现。

    这时只能去修改数据仓库,然后再根据修改后的数据仓库来修改维度和多维数据集,有时候甚至需要重新创建维度和多维数据集。修改之后,再利用前端展示工具对多维数据集进行展现。在整个过程之后,往往又会有新的问题出现,于是不得不再次重复这个过程。

    在SQL Server 2005中,它提供了一种全新的创建OLAP系统的方法,这种方法不仅可以大幅度降低工作量,同时,对于创建一个标准的多维数据集与标准的数据仓库也有很大的帮助。

    这 种方法被称之为“由上而下”的方法。如图3。与传统的方法不同的是,它将数据仓库和Cube的设计顺序互换:首先使用SQL Server设计工具和向导设计Analysis Services维度和多维数据集,然后使用架构生成向导生成基于这些维度和多维数据集的数据源视图以及基础关系数据库架构。该关系数据库称为主题区域数 据库。

 

 

图3 “由上而下”的方法

    在 这种新的方法中,不再按照传统的方法先去创建数据仓库,而是直接去创建多维数据集。在SQL Server 2005中,完全可以在不依赖于任何数据源的情况下,来创建所需的多维数据集,指定它包括的维度、量度、计算值、KPI以及透视图等等,同时也可以设置它 们的属性。然后由SQL Server 2005 提供的强大功能—生成关系架构向导来按照所设置的多维数据集中的维度和量度,自动生成数据仓库,生成数据仓库后就可以加载测试数据,然后再来处理多维数据 集,最后可以利用前端展现工具对设计的多维数据集进行展现。

    这 时,同样会发现多维数据集的设计存在问题,但不必去修改数据仓库了,而是直接来修改多维数据集,包括维度及量度等。修改之后,还可以利用生成关系架构向导 来重新生成数据仓库,并且在生成数据仓库时保留以前的数据,而不必重新加载。如此往复下去,直到设计的多维数据集完全正确。

    比较两种方法不难发现,第二种方法不仅可以大幅度减少工作量,同时也提供了更强大的功能,这样就可以非常轻松地创建出一个标准的多维数据集。这也是SQL Server 2005推荐我们使用的创建OLAP系统的方法。

 

4 销售数据仓库OLAP的实现

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

 

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

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

 

5 结束语

    本 文通过对SQL Server 2005 中OLAP技术的研究,实现了在SQL Server 2005商务智能开发环境中,采用OLAP的最新理念和建模技术,为企业的管理提供了统一、准确和及时的销售分析决策平台,当然,OLAP技术还可以方便 地与数据挖掘一起为企业的商务智能提供良好的解决方案,这可以进行下一步的研究和实现。

 

 
posted on 2009-11-13 12:41  Johnny shen  阅读(1232)  评论(0)    收藏  举报