面向OLAP的高效海量数据存储技术研究与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

收稿日期:2006-04-28

基金项目:国家自然科学基金项目(90412011)

国家“863”

计划项目(2004AA112020,2005AA112030)1引言

随着信息技术的不断发展和互联网应用的普及,社会各行业对信息化需求不断增加,传统的关系型数据库在信息的组织和访问中起了非常重要的作用,促进了联机事务处理OLTP(Onlinetransac-

tionprocessing)的发展。90年代初,随着决策支持系

统等概念的不断深入人心,用户对数据规模和查询计算复杂性的需求不断提高,关系型数据库之父E.

F.Code针对传统关系型数据库在处理复杂计算和

大规模数据的局限,提出了多维数据库和多维分析的概念,即联机分析处理OLAP(on-lineanalytical

processing)。进入21世纪,互联网深入到社会的每

个角落,各行业在系统业务功能逐步增强的同时,系统的数据量也在不断增大。数据量高达几百TB甚至于PB级的海量数据库应用已经出现,人们对于海量数据的高性能OLAP的需求也在不断提高。

面对如此庞大的数据库规模,如何针对这些数据实现高效的管理和访问成为我们亟待解决的问题。

当今业界有很多成熟的OLAP产品,例如Hy-

perionEssbase,IBMDB2OLAPServer,SybasePowerdimension,InformixMetacube等,以上这些产品都提

供了多维数据概念模型定义、批量数据加载、复杂数据查询等功能,但是针对数百TB甚至PB级的大规模海量数据,由于硬件设备和OLAP系统处理能力的限制,这些产品显示出了处理能力的不足。主要表现在:

!数据量巨大无法有效进行空间管理;

!批量数据加载导致索引维护时间过长,导致

长时间索引不可用,并占用大量IO及CPU资源;

!大量各类型索引随数据量增加急剧增长,导

致数据存储碎片增加;

!批量加载与复杂查询并行进行,导致IO成

为系统瓶颈;

!批量数据更新导致优化器统计信息不及时,

产生低效查询计划,影响查询性能。

面向OLAP的高效海量数据存储技术研究与实现

毅韩伟红杨树强贾焰

(国防科技大学计算机学院网络与信息安全研究所,湖南长沙410073)

要:文章在分析了OLAP大规模海量多维数据特点的基础上,针对当前一般规模关系数据库处理海量多维数

据能力的不足,通过使用数据库分区技术和并行磁盘组技术,设计并实现了一种高效的、

面向OLAP应用的数据存储管理结构。并针对传统查询优化器对于大规模海量数据统计信息更新不及时的问题,设计了一种基于分区技术的统计方法。实验证明,该设计可以对百TB级的多维海量文本数据进行有效的管理。关键词:OLAP,数据存储,海量,关系数据库,多维,文本数据中图分类号:TP31

文献标识码:A

文章编号:1000-7180(2006)S0-0154-03

TheStudyandImplementationofanEffectiveMassiveData

StorageTechniquetoOLAP

HANYi,HANWei-hong,YANGShu-qiang,JIAYan

(InstituteofNetworkTechnology&InformationSecurity,SchoolofComputerScience,NationalUniversityofDefense

Technology,Changsha410073,China)

Abstract:Onthebasisonanalysisoffeaturesofmassivemulti-dimensiondataandlimitationoftraditionalrelational

databaseonhandlingmassivemulti-dimension,wedesignandimplementaneffectivedatastoragemanagementstructureonOLAPbypartitionandparalleldiskgrouptechnique.Focusonproblemofstatisticsofqueryoptimizeronupdate,wedesignastatisticsmethodbasedonpartitiontechnique.Asaresult,weprovedthatmulti-dimensionmassivetextdataonhundredsofTBlevelcouldbeefficientlymanagedbysingleRACthroughthissolution.Keywords:OLAP,Datastorage,Massive,Relationaldatabase,Multi-dimension,Textdata

当前业界的许多商用数据库,例如OracleDatabase10g,IBMDB2UDB等都提供了对于海量数据的支持,但一般的大型商业并行数据库由于关注的更多的是多用户环境下的并行查询优化,对单一用户的数据高速加载和多维数据复杂查询请求考虑不足。因此,采用商用数据库系统构建海量OLAP系统也面临着潜在的性能问题。

银河群星海量并行数据库系统(如图1所示),是国防科技大学计算机学院网络与信息安全研究所自主设计并实现的海量文本数据库系统。该数据库系统通过在多个集群数据库之上部署并行事务处理中间件,实现了高效海量文本数据管理。通过测试,该数据库系统作为底层数据库平台的银河海量并行数据库系统可以达到每秒MB级的并行高速加载,以及在100TB的文本数据范围内,实现了多用户的、针对包含文本关键字的多维数据的秒级模糊查询和统计,达到了百TB级多维文本数据的高效OLAP。

2一种高效的海量文本数据库

银河海量数据库由StarTP-Monitor并行中间件和底层数据库[3]组成,当用户访问请求到来后,负载平衡服务根据数据字典配置,在多个运行服务中根据负载选择服务处理用户请求。加载服务接受请求后,将任务根据底层服务负载分配到底层数据库执行,查询服务进行查询请求的执行并负责结果的合并。

我们根据银河群星海量并行数据库特点,以O-racle的真正应用集群数据库RAC(RealApplicationDatabase)为基础,设计了一种高效的OLAP海量文本数据管理系统。本节从存储、数据及索引组织、内存和统计几个方面介绍了该数据库的设计思想。2.1数据逻辑划分

高速数据导入是海量OLAP系统的要求之一,在银河海量并行数据库中,我们将到来的多维文本数据首先根据时间进行切片,采用数据库的分区技术,分别实施存储(如图2所示)。

为了保证OLAP应用对于查询性能的要求,必须对多维数据建立索引,尤其是对于文本类型的多维数据,索引空间在整个数据库存储中的比重很大,我们使用OracleText对含有一个varchar(256)类型的文本字段的多维数据表建立索引,表中平均记录长度为190KB,该表中文本索引占用存储空间约为数据空间的2倍,并且随着数据记录数量的增长,索引占用的空间呈线性增长的趋势。由于本文讨论的数据为规模较大(100TB以上的数据空间)的海量数据,数据索引占用的空间也将是数百TB级的,所以必须对索引空间进行有效的管理,保证索引的高效运行。数据库对于索引的维护开销是非常巨大的,对一个表中插入一条记录,表上有一个索引和无索引,其执行代价约为3:1[6]。对于多个索引,则这个代价更高。另一方面,对目的表进行加载操作时,要么加载时刻维护索引,要么在加载结束后维护索引,这两种方法都导致在维护索引的阶段,数据索引处于不一致的状态而导致此索引不可用,影响整个数据表的查询效率。

银河群星海量数据库系统加载中间件使用了交换分区技术,就是将数据表根据时间维度进行分区,加载时首先在目标分区对应的表空间中建立与目标表结构完全相同的临时数据表,之后将整个分区的数据加载至该临时表,并对该临时表建立局部索引并与数据表对应分区进行交换。对于数据量为约6G大小的数据表,整个交换过程仅需不到10秒(如图3所示)。使用交换分区方式对数据进行分区加载,既保持索引维护的高效性,又保证了入库数据的索引一致性

相关文档
最新文档