您现在的位置是:首页 > IT基础架构 > 软件与服务 >
OLAP技术及其在SQL Server 2000中的实现
摘要OLTP系统积累的大量数据如何为决策分析提供支持将成为下一阶段数据库应用的重点,OLAP技术通过数据立方体提供多维度的数据视图,并通过旋转切片等操作扩展查询语言的功能来满足这种需求。...
1OLTP和OLAP
当前的数据库系统应用可主要分为两大类:操作型和分析型。操作型应用面向操作人员和低层管理人员,称为联机事物处理OLTP(On-LineAnalyticalProcessing);分析型应用面向高层管理人员,称为联机分析处理OLAP(On-LineAnalyticalProcessing)。
20世纪60年代末,Codd所提出的关系数据模型促进了关系数据库及联机事务处理(OLTP)的发展。从此,数据不再以文件方式同应用程序绑在一起,而是分离出来以关系表方式供大家共享。OLTP的基本功能是维护数据库中数据的日常维护(添加、修改、删除)、统计、报表生成等。
随着政府及商业应用的发展,数据量快速增大。同时,用户的需求也越来越复杂,涉及的功能已不仅是查询或操纵一张关系表中的一条或几条记录,而是要对多张表中的千万条记录进行数据分析和信息综合,即数据分析处理。为了方便快捷地访问和分析数据,不少软件厂商通过发展其前端产品来弥补DBMS支持的不足。他们通过专门的数据综合引擎,辅之以更加直观的数据访问界面,力图统一分散的公共应用逻辑,在短时间内响应非专业人员的复杂查询要求。1993年,Codd将这类技术定义为“OLAP”。鉴于Codd的影响,OLAP的提出引起了很大反响,它作为一类产品,与OLTP明显地区分开来。它通过快速、一致、交互地访问各种可能的信息视图,帮助数据分析人员、管理人员、决策人员洞察数据的奥秘,掌握隐于其中的规律。OLAP力图处理数据仓库中浩如烟海的数据,并将之转化为有用的信息,从而实现对数据的归纳、分析和处理,帮助企业完成决策。
OLAP支持最终用户进行动态多维分析,其中包括:跨维度、在不同层次之间跨成员地计算和建模;在时间序列上的趋势分析、预测分析;切片和切块,并在屏幕上显示,从宏观到微观,对数据进行深入分析;可查询到底层的细节数据;在观察区域中旋转,进行不同维间的比较等。
2OLAP涉及基本概念及结构
2.1OLAP的基本特征
OLAP的基本特征为:
(1)提供数据的多维视图;
(2)快速响应用户的分析请求;
(3)强大的分析功能;
(4)数据共享;
(5)信息性。
2.2OLAP实现架构
如图1所示,OLAP是一种三层客户机/服务器结构。这种结构的优点在于将应用逻辑、GUI及DBMS严格区分开来。它主要由数据源(数据仓库或OLTP数据库)、OLAP服务器及OLAP客户机组成。
2.3OLAP的存贮结构:MOLAP通、ROLAP和HOLAP
基于多维数据库的OLAP以多维数据库(MDDB——Multi-DimensionalDatabase)为核心。多维数据库基于层次模型。MD-OLAP将DB服务器层与应用逻辑层合二为一,DB层负责数据存储、存取及检索;应用逻辑层负责所有OLAP需求的执行。来自不同数据源的数据通过一系列批处理过程载入MDDB中,在数据填入MDDB的数组结构之后,MDDB将自动建立索引并进行预综合来提高查询存取性能。其优点是查询速度快,缺点是灵活性不足。
ROLAP则基于关系数据库系统。基于关系模型的OLAP-ROLAP的预综合度相当灵活,它在适应维和数据的动态变化、适应大数据量及软硬件的能力上优于MDOLAP。目前流行的数据库系统基本都基于关系模型,所以ROLAP可以把数据存贮在现有的数据库系统中。当分析模型确定后,分散在OLTP数据库中的数据经过预处理被载入数据仓库,OLTP服务器将前端提交的请求转化为一系列的SQL语句执行。分析结果经多维处理转化为多维试图返回给客户。ROLAP的优点是灵活,但数据预处理程度较低,数据冗余量大,查询速度较MDOLAP低。
混合型HOLAP(HybridOLAP)则是前两种技术的有机结合。不过,目前尚无确切的定义。一个真正的HOLAP系统至少应遵循以下准则:
(1)维数可动态更新;
(2)可根据RDBMS系统的元数据来构建多维视图;
(3)可以快速存取各种级别的汇总数据;
(4)可适应海量数据的分析;
(5)可以方便地对计算和汇总数据进行维护和更新;
HOLAP的实现方法一般有以下几种:
①同时提供MDDB和RDBMS让开发人员选择;
②运行时把对关系数据库的查询结果存入多维数据库,响应客户请求时先查看MDDB中是否有查询数据;
③利用MDDB存贮综合数据,利用RDBMS存贮细节数据,这种方法被认为是实现HOLAP较为理想的方法。SQLServer2000中HOLAP的实现采用的就是这种方法。
2.4维度模型
维度即人们观察事物的角度。
数据源类型普遍是关系数据库,OLAP将关系数据库中的表划分为两类表:一类是事实(Fact)表,用来存储事实的度量(Measure)值及各个维的码值;另一类是维表,对每一个维来说,至少有一个表用来保存该维的元数据,即维的描述信息,包括维的层次及成员类别等。在相关事实表中,这些值会衍生出该维的列。
事实表是通过每一个维的码值同维表联系在一起的,该结构有时被称之为“星型模式”。一般来说,通过把事实表和每一个维表连接起来,经一次查询,就可以从给出度量及各维标记的事实表中选取事实。该方式使用户及分析人员可以用商业名词(元数据名或标记)来描述一个需求,该需求被重新翻译成每一个维的代码或值。
有时,对于维内层次复杂的维,用一张维表来描述会带来过多的冗余数据,为了避免冗余数据占用过大的空间,可以用多张表来描述一个维。比如,产品维可以进一步划分为类型表、颜色表、商标表等,这样,在“星”的角上又出现了分支。这种变种的星型模型被称之为“雪花模式”。这样,在实际实现时,可以根据需要进行均衡。对某些层次复杂、成员类较多的维采用多张表来描述,而对于较为简单的维可以用一张表来描述。
其它的维度模型基本都是这两种模式的衍生物。
3SQLServer2000中的实现
3.1分析服务器
SQLServer2000的OLAPServer提供分析服务,数据源可来自任何支持ODBC或OLEDB借口的关系数据库系统,服务器支持MDOLAP,ROLAP,HOLAP三种存贮模式(用户自己定义使用的存贮模式)。支持全部六种维度模式,支持MDOLAP查询。
3.2客户端工具ADOMD,OLEDB,DSO
3.2.1DSO
为了方便地将OLAPServer集成到客户应用程序中,微软提供了服务器的COM对象模型,DSO(DicisionSupportObjects)对象帮助用户使用OLAPServer。DSO向客户暴露了如下的接口:Command,Dimension,Level,MDStore,Measure,andRole。
—Command:定义、执行MDX命令。
—Dimension:管理维度(数据库维度、立方体维度、分取维度、聚合维度)。
—Level:定义维度的继承关系。
—MDStore:管理存贮模型。
—Measure:管理立方体、分区、聚合中存贮的值。
—Role:管理数据库用户。
3.2.2MDOLEDB
这是一个符合OLEDB接口规范的定义的OLE数据提供者对象模型,是一个略微低级的接口,使用灵活、效率高,但复杂,故一般较少使用。
3.2.3ADOMD
OLEDB的封装,通过扩充的MDSQL与服务器交互。
MDSQL的数据定义语句(DDL)共有17条语句:ALTERCUBE,CREATEACTION,CREATECACHE,CREATECELLCACULATION,CREATECUBE,CREATEMEMBER,CREATEMININGMODEL,CREATESET,DROPACTION,DROPCELL,DROPCUBE,DROPCELLCACULATION,DROPLIBRARY,DROPMEMBER,DROPMININGMODEL,DROPSET,REFRESHCUBE,USELIBRARY。
MDSQL的数据操纵语言(DML)有4条语句:DRILLTHROUGH,INSERTINTO,SELECT,UPDATECUBE。
3.2.4EXCEL客户端
严格来讲,EXCEL不能算作客户端工具。EXCEL中的数据透视表(图)可从立方体中提取数据生成统计、分析图表。但实际上它是通过OLEDB作为底层接口访问分析服务器的。数据透视表的生成过程中屏蔽掉了这一细节。数据透视表(图)从整体上可清晰、直观地展示发展趋势,对形势的把握、未来发展的预测很有帮助。
4OLAP与数据挖掘DM
数据挖掘旨在从海量数据中发现内在隐藏的规律,这是数据库系统应用(包括OLTP,OLAP,DM)目前最深层次的应用。OLAP可帮助管理人员定性分析各种因素对分析目标的影响。DM则可根据大量的历史数据定量地给出各种因素对分析目标的影响程度。数据挖掘主要是基于人工智能、机器学习、统计学、数据库等技术。数据挖掘的分析方法主要有关联分析、序列模式分析、分类分析、聚类分析等。数据挖掘利用人工智能领域中一些已经成熟的算法和技术,如:人工神经网络、遗传算法、决策树方法、邻近搜索算法、规则推理、模糊逻辑、公式发现等来进行数据的挖掘,数据挖掘是人工智能中的成熟技术在决策支持系统中的具体应用。
OLAP和数据挖掘是相辅相成的,但它们的侧重点不同,OLAP侧重于与用户的交互、快速的响应速度及提供数据的多维试图。数据挖掘则能自动发现隐藏在数据中的模式和有用信息。OLAP的分析结果可以给数据挖掘提供分析信息作为挖掘的依据,数据挖掘可以拓展OLAP分析的深度,可以发现OLAP所不能发现的更为复杂、细致的信息。
从上面的论述可以看出,如果将OLAP与数据挖掘相结合将会发挥更好的效用,这是OLAP发展的又一个新方向。
5结束语
数据库系统的应用自20世纪80年代以来在中国取得长足进步。桌面系统、客户/服务器系统、数据仓库系统层出不穷。但是,企业级的、经过精心规划设计的精品少之又少,而小型系统设计又极不规范,不利于向数据仓库的迁移。究其原因,企业粗放经营是其根源。推动企业信息化建设很重要,但当务之急是改变企业的经营机制,否则,再好的信息系统也只是浪费投资。
(本文不涉密)
责任编辑: