第30卷第4期2002年8月
福州大学学报(自然科学版)
JournalofFuzhouUniversity(NaturalScience)
Vol.30No.4Aug.2002
文章编号:1000-2243(2002)04-0507-03
OLAP技术的分析
蒋秀凤
(福州大学数学系,福建福州350002)
摘要:介绍了OLAP的概念,OLAP的分类,ROLAP和MOLAP的比较分析,OLAP与数据仓库的关系,OLAP工具的评估,流行的OLAP工具,为提高OLAP的性能可以采用星型模式组织数据、采用索引技术、大的数据表分片为许多小表、维的逆规范化、构建概要表、采用并行查询技术.关键词:数据仓库;OLAP;OLTP;ROLAP;MOLAP中图分类号:TP311.13文献标识码:A
SimplediscussiononOLAPtechnology
JIANGXiu-feng
(DepartmentofMathematics,FuzhouUniversity,Fuzhou,Fujian350002,China)
Abstract:ThispaperintroducestheconceptofOLAP,classesofOLAP,comparisonandanalysisofROLAPandMOLAP,relationsbetweenOLAPanddatawarehouse,evaluationofOLAPkits,prevalentOLAPKits.ToraisetheperformanceofOLAP,onemayemploystar-patternmodetoorganizedata,employindextechnic,dividelargedatasheettomanysmalldatasheet,normalizedimensioninversely,constructsummarysheet,employparellelinquirytechnic.
Keywords:datawarehouse;OLAP;OLTP;ROLAP;MOLAP
OLAP代表联机分析处理,是一种用于对大容量数据归总与分析的技术,最早由CoddEF于1993年提出.当时,Codd认为联机事务处理(OLTP)已不能满足终端用户对数据库查询分析的需要,SQL对大数据库进行的简单查询也不能满足用户分析的需求.用户的决策分析需要对关系数据库进行大量计算才能得到结果,而查询的结果并不能满足决策者提出的需求.因此,Codd提出了OLAP.绝大多数的数据仓库专家都同意这样的观点:OLAP应具有性、可钻取性、可旋转性、以及多视图模式.
1OLAP的分类及比较
OLAP的数据存储方式可以分为关系型联机分析处理(ROLAP)和联机分析处理(MOLAP)两种类型.
1)ROLAP一般比MOLAP响应速度慢,但数据装载速度比MOLAP快.ROLAP维数一般没有,现有的关系数据库的技术可以沿用,可以通过SQL实现详细数据与概要数据的储存,支持数据的动态连接和通用数据的更新处理.现有关系型数据库已经对OLAP做了很多优化,包括并行存储、并行查询、并行数据管理、基于成本的查询优化、位图索引、SQL的OLAP扩展等大大提高了ROALP的速度,可以针对SMP或MPP的结构进行查询优化.ROLAP维护复杂,只读、不支持有关预算的读写操作,SQL无法完成多行和维之间的计算.
2)MOLAP性能好、响应速度快,数据装载速度比ROLAP慢.专为OLAP所设计,维护简单,如果已知数据的访问模式,则数据的结构可以优化.支持复杂的跨维计算、多用户的读写操作、行级的计算.信息是以数组形式存放的,可以在不影响索引的情况下更新数据,较适合于读写应用.不足之处在
收稿日期:2002-03-18
作者简介:蒋秀凤(1963-),女,硕士,副教授.
∃508∃
福州大学学报(自然科学版)第30卷
于系统复杂度、培训与维护费用增加;受操作系统平台中文件大小的,难以达到TB级;维数有限,需要进行预计算,可能导致数据爆炸;无法支持维的动态变化,缺乏数据模型和数据访问的标准,不支持通用的更新处理;对数据的动态连接的支持是有问题的,如果对路径的访问不被数据设计所支持的话,这种结构就显得不灵活.
对这两种技术的选择,应视具体情况取决于实际应用范畴.建立大型的、功能交错的企业级数据库,选择ROLAP为宜;而建立具有明确定义的、单一的分析型数据集市,维数相对少,也不太需要详细的、原子级的数据,那么选择MOLAP较合适.
[1]
2OLAP与数据仓库
OLAP数据库与数据仓库之间的关系是互补的.一般情况下,数据仓库作为OLAP的基础,从中选出细节数据的一个子集传到OLAP数据库中,进行数据的汇总或聚集.数据仓库能容纳细节数据,OLAP数据库保存的是各种轻度综合的数据,DSS分析员还可向下钻取到数据仓库的细节级,而OLAP数据库中的汇总数据也被存储在数据仓库中.数据定期从数据仓库中导入到OLAP数据库中,由于操作型环境的数据进入到数据仓库时已被集成,因此OLAP数据库就不用从操作型环境中抽取与集成数据.
数据仓库与OLAP数据库的区别是:数据仓库存有大量的数据,OLAP数据库中的数据至少要少一个数量级; 数据仓库只适于少量的灵活访问,OLAP数据库适合大量的非预知的访问和分析;!数据仓库存储很长时间范围内的数据(5~10年),OLAP数据库中存储着较短时间范围内的数据;∀数据仓库允许分析人员以受限的形式访问数据,OLAP数据库允许自由的访问;#数据仓库侧重于存储和管理面向决策主题的数据,而OLAP则侧重于数据仓库中的数据分析,并将其转换成辅助决策信息.
此处,OLAP的一个重要特点是数据分析,这与数据仓库的数据组织正好形成相互结合、相互补充的关系.OLAP技术中比较典型的应用是对数据的切片和切块、钻取、旋转等,它便于使用者从不同角度提取有关数据.OLAP技术还能够利用分析过程对数据进行深入分析和加工.
[2]
3OLAP工具的评估
当前,OLAP工具的销售商很多,所提供的工具也很多.这些工具应具备以下几条基本特性:必须能够对数据进行钻取、必须能够在维之间进行切换、允许改变你所显示数据的外观.选择OLAP工具时应该注意的一些因素是:实际应用情况、用户需求、OLAP的开发情况、产品在管理方面所具有的特点、性能和适应性的比较以及数据仓库设计.
流行的OLAP工具有:Oracle公司的OracleExpress,Congnos的PowerPlay,Microstrategy公司的DSSAgent,CA公司的InfoBeacon,Hyperion公司的Essbase,SAS,IBM公司的DB2OLAPServer,Informix公司的Metacube,Sybase公司的Powerdimension,Microsoft公司的Plato,Brio,BusinessObject公司的BusinessObjects,DecisionSuite.
4OLAP性能的提高
1)对于ROLAP以星型模式组织数据,可以非常直观地描述数据的结构.由于维表中数据有限而事实表中的数据庞大,在数据进行OLAP操作时,应先对维表进行操作,后处理事实表以提高效率.对于MOLAP物理结构采用多立方结构,计算利用超立方结构来进行,结合超立方结构的简化性和多立方结构的旋转存储特性,多立方结构灵活性较大,但超立方结构更易于理解,多立方结构是存储稀疏矩阵的一个更有效方法,并能减少计算量.
2)索引技术.为提高效率,在进行多表连接时,可利用连接索引,不必进行真正的join运算,就能找到符合条件的记录.采用新的索引技术建立索引,在Oracle8或RedBrick之类的数据库中,位图索引更合适.用于连接的列索引,尤其是唯一的索引或维键的主要,可以提高被请求数据的返回速度.第4期蒋秀凤:OLAP技术的分析
∃509∃
应该为每一个事实表在组合的维列创建一个索引.在可能之处使用简洁的联合键.在只能通过被索引列在维和立方体的方案中连接表.采用簇类索引可确保快速的行检索和更新.Bit-Wise索引将所有的数据和值用特殊的二进制结构表示,可以高速进行访问、汇总、分组和比较操作,可以管理各种各样的数据类型,能够对关系型数据做快速动态的聚集计算以及按范围搜索.采用低取值度的位图技术允许对记录做快速统计和过滤.
3)数据分区技术.数据分区是另一个决定数据仓库伸缩性的设计因素.将大的数据表分片为许多小表.对于包含大量数据的事实表,可以按维进行必要的划分,然后将事实表数据进行分布存储.数据仓库环境中的大量查询的选择都和维数据相关,这样事实表数据按维进行分布后,将能提高查询的并行性,从而提高系统的性能.采用分区可以提高数据的修剪效率.另外,加载数据最快的方法就是将数据加载至空表或没有索引的表,通过加载至较小的分区表,渐变加载进程的效率将会大大提高,这对更新已经存在的数据仓库特别有用.
4)在必要时还可用到另一种技术,维的逆规范化,可以提高性能,它是关系型数据库的反面技术,但千万要小心谨慎才行.
5)构建概要表.数据仓库经常会包含一些概要表,聚集导航器是用来自动为每个查询选择最佳表的一个软件部件,最佳表可被定义为能够回答用户请求的最小可用表.虽然在原子级的表上就可以运行所有的查询,但创建概要表的目的是为了提高查询的性能.将聚集导航器与聚集表结合起来可以提高查询的性能.
6)并行技术.随着数据量的增长,单机系统资源难以满足应用的需要,有必要进行并行数据仓库的研究,以提高OLAP性能.目前的主要问题是数据仓库中数据的分布存储、海量数据的并行载入、OLAP查询处理的并行化和数据仓库环境下的并行查询优化.
已有的数据分布方法主要有一维数据分布、数据分布和某些传统物理存储数据结构的并行化.设计海量数据的载入算法.如考虑数据的增量更新问题,对原始数据处理后,不直接存入数据仓库,而是存入临时库,待处理结束后再批量载入数据仓库.
采用ROLAP技术实现查询最耗费系统资源的基本数据操作是多表连接和聚集操作.应研究这两种基本操作的并行算法,以提高OLAP的效率.在数据仓库的并行查询优化方面还应研究查询处理时对现有存储结构的有效利用,如选择各种索引来提高效率以及在各节点间有效地传输数据.
还可采用并行实用程序(包括排序、建立索引、备份、恢复和加载)提高数据的可用性、采用异步预读取功能提高查询速度、采用可调的大块IO技术通过减少物理IO来改善性能.并行的备份和加载技术提供对大数据容量的支持并在备份期间给予并发用户对数据库的读访问.
7)缓存技术.多用户、缓存是性能与用户可扩展性的关键需求.由于大多数的请求很少能够确切符合报表的内容,%缓存&资源将会变得不足.为最大限度的使用资源,必须在查询与会话之间和多用户之间共享缓存,同时为了使其具备最大限度的灵活性,缓存既支持动态,也支持静态.
8)存储与计算技术.改写资源密集型的计算,对一个大集合的运算分解为一组小集合的运算,如将的和运算改写为单维和的求和运算,将比单独计算连接的和要占用更少的资源,获得更好的性能.
通常,数据库存储在硬盘上,但为了获得更高的性能,某些产品允许数据结构存储在RAM上.有些数据被提前计算,计算结果以数组形式进行存储.事实上,数据计算不需要在数据存储位置上进行.即使活动的OLAP数据存储在关系数据库中,采用在关系数据库上完成复杂的计算也不是较好的选择.因为SQL的单语句并不具备完成计算的能力,要获得哪怕是最普通的计算功能也需要多重SQL.可用SQL做一些计算,然后将计算结果作为引擎输入.引擎在客户机或中层服务器上做大部分的计算工作,这样就可以利用RAM来存储数据,提高响应速度.
(转第513页)
[4]
[3]
第4期陈晓云,等:分布数据库关联规则挖掘
∃513∃
同理可得场地2的频繁集{(I2I4:2)},场地3的频繁集{(I1I3:3),(I1I2:2),(I1I2I3:2),(I2I3):4}.
2)全局频繁集的生成.全局最小支持度计数为40%∋15=6.场地1的频繁项集(I2I3:2)在场地3中也出现,支持度计数求和后为6,等于全局最小支持度计数,因此是全局频繁的.而其它候选项集(I1I5:2),(I2I4:2),(I1I3:3),(I1I2:2),(I1I2I3:2)的支持数均小于全局最小支持度计数,因此是全局非频繁的,虽然它们是局部频繁的.得到全局频繁集L={(I2I3:6)}.
3)由全局频繁集产生关联规则.{I2I3}的非空子集为{I2},{I3}.因为I2.count=4+2+4=10,I3.
I2I3.countI2I3.count
count=2+2+5=9.所以,=610=60%<65%;=69=66.7%>65%.得到满足最
I2.countI3.count小置信度阈值的关联规则:I3I2,confidence=66.7%.参考文献:
[1]JiaweiHan,MichelineKamber.Dataminingconceptandtechniques[M].北京:高等教育出版社,2001.[2]周海岩.关联规则的开采与更新[J].软件学报,1999,10(10):1078-1084.[3]赵亮,王培康.关联规则发现:综述[J].计算机工程与应用,2001,37(8):94-96.
[4]朱绍文,王泉德,黄浩,等.关联规则挖掘技术及发展动向[J].计算机工程,2000,26(9):4-6.
(接第509页)
SMP共享采用%共享&的体系结构,降低诸如元数据、缓存、队列和数据库连接等对象所消耗的资源.共享的体系结构以确证所有的用户可透明地共享服务器对象.这样,当用户数量在不断增加时就不
会过重的加大对系统的负担.
采用纵向数据存储技术,这种存储方法使查询仅仅触及所需要的字段或列,会减少磁盘IO,全表扫描和所有列的触及被有效地防止了.采用垂直的数据存储可减少磁盘IO高达98%,消除表扫描并提供高达100倍以上的查询响应.另外,优秀的压缩技术使数据只占到传统数据库规模的20%.参考文献:
[1]MichaelJCorey,MichaelAbbey,LanAbramson,etal.Oracle8数据仓库分析、构建实用指南[M].陈越,郭渊博,张红
旗译.北京:机械工业出版社,2000.275-287.
[2]InmonWH.数据仓库[M].王志海译.北京:机械工业出版社,2000.104-109.[3]蒋旭东,冯建华,周立柱.并行数据仓库的研究[J].计算机科学,2001,28(3):1-3.
[4]ErickThomsen,GeorgeSpofford,DickChase.MicrosoftOLAP解决方案[M].潇湘工作室译.北京:人民邮电出版社,
2000.259-281.