1 引 言
随着计算机技术的飞速发展和企业界不断提出新的需求,数据仓库技术应运而生传统的数据库技术工单的数据资源,即以数锯库为中心,进行事务处理、批处理到决策分析等各种类型的数据处理工作。近年来,随着计算机应用的发展网络计算开始向两个不同的方向拓展,一是广度计算,一是深度计算。广度计算的含义是把计算机的应用范围尽量扩大,同时实现广泛的数据交流,互联网就是广度计算的特征;另一方面就是人们对以往计算机的简单数据操作提出了更高的要求,希望计算机能够更多地参与数据分析与决策制定等领域,特别是数据库处理可以大致地划分为两大类:操作型处理和分析型处理(或信息型处理)。这种分离划清了数据处理的分析型环境与操作型环境之间的界限,从而由原来钓以单一数据库为中心的数据环境发展为一种新环境:体系化环境,而基于数据仓库技术上的联机分析处理(OLAP,On-Line Analytical Processing)技术就是其中一个关键的技术。
联机分析处理的概念最早是由关系数据库之父E.F.Codd于1993年提出的。当时,Codd认为联机事务处理(OLTP)已不能满足终端用户对数据库查询分析的需要,SQL对大数据库进行的简单查询也不能满足用户分析的需求,用户的决策分折需要对关系数据库进行大量计算才能得到结果,而查询的结果并不能满足决策者提出的需求,因此Codd提出了多维数据库和多维分析的概念,即OLAP。
根据OLAP产品的实际应用情况和用户对OLAP产品的需求,人们提出了一种对OLAP更简单明确的定义,即共享多维信息的快速分析,OLAP主要有以下一些特点:
快速性 用户对OLAP的快速反应能力有很高的要求,系统应能在5秒内对用户的大部分分析要求做出反应,这也是OLAP的一个显著的特点。
可分析性 OLAP系统应能处理与应用有关的任何逻辑分析和统计分析,用户无需编程就可以定义新的专门计算,将其作为分析的一部分,并以用户理想的方式给出报告。用户了以在OLAP平台上进行数据分析,也可以连接到其他外部分析工具上,如时间序列分析工具、成本分配工具、意外报警、数据开采等。
多维性 多维性是OLAP的关键属性,系统必须提供对数据分析的多维视图和分析,包括对层次维和多重层次维的完全支持。事实上,多维分析是分析企业数据最有效的方法,是OLAP的灵魂。
信息性 不论数据量有多大,也不管数据存储在何处,OLAP系统应能及时获得信息,并且管理大容量信息,这里有许多因素需要考虑,如数据的可复制性、可利用的磁盘空间、OLAP产品的性能及与数据仓库的结合度等。
共享性 在大量的用户群中共享潜在的数据是实现安全需求的需要。
2 OLAP的基本概念和术语
2.1 OLAP数据模型(OLAP Data Model)
在一个OLAP数据模型中,信息被抽象视为一个立方体(Cube),它包括维(Dimenmion)和度量(Measure),这个多维的数据模型使终端用户提交的复杂查询、报表数据的分类排列、概要数据向详细数据的转化和过滤、数据的切片等工作变得简单。多维结构是决策支持的支柱,也是OLAP的核心,OLAP展现在用户面前的是一幅幅多维视图。
2.2 维和度量
维是相同类数据的集合,也可以理解为变量。假定某个百货零售商,有一些因素会影响他的销售业务、如商品、时间、商店或流通渠道,更具体一点,如品牌、月份、地区等。对某一给定的商品,也许他想知道该商品在各商店和各段时间的销售情况。对某一商店,也许他想知道各商品在各段时间的销售情况。在某一时间,也许他想知道各商店各产品的销售情况。因此,他需要决策支持来帮助制定消售政策,这里,商店、时间和产品都是维。各个商店的集合是一维,时间的集合是一维,商品的集合是一维。维有自己固有的属性,如层次结构(对数据进行聚合分析时要用到)、排序(定义变量时要用到)和计算逻辑(是基于矩阵的算法,可有效地指定规则),这些属性对进行决策支持是非常有用的。
度量是一个定量值。假定在一个含有销售信息的立方体中,典型的度觉应该包含悄售总额、商品单价、商品库存、支出、收入等数值。
2.3 活动数据的存储
用户对某个应用所提取的数据称为活动数据,它的存储有以下三种形式:
关系数据库 如果数据来源于关系数据库,则活动数据被存储在关系数据库中,在大部分情况下,数据以星型结构或雪花结构进行存储。
多维数据库 在这种情况下,活动数据被存储在服务器上的多维数据库中,包括来自关系数据库和终端用户的数据。通常数据库存储在硬盘上,但为了获得更高的性能,某些产品允许多维数据结构存储在RAM上。有些数据被提前计算,计算结果以数组形式进行存储。
基于客户的文件 在这种情况下,可以提取相对少的数据放在客户机的文件上,这些数据可预先建立,如Web文件。与服务器上的多维数据库一样,活动数据可放在磁盘或RAM上,这三种存储形式有不同的性能,其中关系数据库的处理速度大大低于其他两种。
2.4 OLAP数据的处理方式
OLAP有三种数据处理方法,事实上,多维数据计算不需要在数据存储位置上进行。
关系数据库 即使活动的OLAP数据存储在关系数据库中,采用在关系数据库上完成复杂的多维计算也不是较好的选择。因为SQL的单语句并不具备完成多维计算的能力,要获得即使是最普通的多维计算功能也需要多重SQL。在许多情况下,一些OLAP工具用SQL做一些计算,然后将计算结果作为多维引擎输入。多维引擎在客户机或中层服务器上做大部分的计算工作,这样就可以利用RAM来存储数据,提高响应速度。
多维服务引擎 大部分OLAP应用在多维服务引擎上完成多维计算,并且具有良好的性能。因为这种方式可以同时优化引擎和数据库,而服务器上充分的内存为有效地计算大量数组提供了保证。
客户机 在客户机仁进行计算,要求用户具备性能良好的PC机,以此完成部分或大部分的多维计算。对于日益增多的瘦型客户机,OLAP产品将把基于客户机的处理移到新的Web应用服务器上。
2.5 OLAP的分类
OLAP技术发展到今天,OLAP产品可以依据数据存储的数据库管理系统(DBMS)分为:MOLAP、ROLAP、HOLAP。
MOLAP产品计算速度快但支持的数据容量小。MOLAP是指OLAP数据存储在多维数据库上,从概念上讲是将数据存储在多维数组的单元中,例如可以把一个销售系统中的数据视为一个三维数组,分别对应于产品、顾客和时期,各单元中的值表示在相应的时期内出售的相应产品的数量。MOLAP的物理存储方式称其逻辑组织是十分相似的,而且此类产品中还会提供大量的统计和数学函数、可视化工具和报表生成工具,不过此类声品尚在发展中,目前还没有多维查询语言的标准,同时多维数据库也没有类似规范化的科学理论基础。
ROLAP产品支持更成熟的可缩放性、并发控制和管理控制。ROLAP是指OLAP数据存储在传统的SQL数据库,即关系数据库中。目前此类产品是三种中最成熟的,因为它本身有一套完备的关系数据库理论作为基础,使它可以通过二维的关系表来创建多维视图,而且提供强大的SQL查询工具来支待复杂的多维分析。
HOLAP产品是最近发展起来的一种解决方案,它将MOLAP和ROLAP的优点融合在一起。它在关系数据库上维护大量的详细的记录,具有优越的执行速度和广泛的扩展性。
现在用户常用的OLAP产品是Informix公司、DB2公司、Oracle公司、Microsoft公司等几家的。下面以Microsoft公司的OLAP Services产品为例介绍OLAP技术在实际产品中的应用。
3 SQL Server 7.0的OLAP Senvices
3.1 体系结构
SQL Sever 7.0提供的OLAP Senvices是SQL Sever 7.0的一个组件,它的目的是当用户对数据库里的数据进行查询时,给出一个迅速的应答。对于这些查询操作,尤其是那些为了获得总结性信息的查询,可以采用一些方法提供决速的访闷应答。这些方法包括汇总信息的预运算(简称为集合),以及将汇总信息存储在数据结构里供用户使用,OLAP Senvices支持CUBE结构的多维数据结构以及在该结构中使用的一种简便导航语言,这两种特性与其他支持性服务、向导和对象模型结合构成了OLAP环境(见图1)。