admin 管理员组

文章数量: 1184232


2024年3月20日发(作者:滑动式滑块块联轴器)

总第290期 

计算机与数字工程 

Vo1.41 No.12 

2013年第12期 

Computer&Digital Engineering 

1939 

基于Hadoop的大数据查询系统简述 

陈梦杰陈勇旭贾益斌张--11l宋杰 

(东北大学软件学院沈阳110819) 

摘要近年来,随着计算机技术的迅猛发展,其领域迎来了大数据时代。随着大数据的出现,传统的关系型数据库已经不能满足高储 

存量的要求,此时成本低廉、有着良好并行性和伸缩性的云数据库应运而生,它采用键值对数据模型和分布式的计算环境。但是海量数据在 

Key-value数据库中的查询效率低下、实时性差等问题又普遍存在。为了解决查询效率低下这一问题,将多维数据模型和索引技术应用于 

Key-value数据库,将事实数据以多维的形式进行存储并在多维模型上建立索引以加快查询速度。论文将系统地描述多维数据模型的建立 

和索引技术的实现,最后简单地和主流Key-value数据库进行优缺点对比。 

关键词 大数据;Key-value数据库;多维模型;Z-ordering;K—d tree 

中图分类号TP391 DOI:10.3969/j.issn1672—9722.2013.12.021 

A Brief Introduction Hadoop—based Big Data Query System 

CHEN Mengjie CHEN Yongxu ZHANG Yichuan SONG Jie 

(Software College,Northeastern University,Shenyang 110004) 

Abstract In recent years,with the rapid development of computer technology,its area ushers in the era of big data.With the emer— 

gence of big data,the traditional relational database connot meet the needs of high storage capacity when the 1OW cost cloud database with 

good parallelism and scalability comes into being at the historic moment.It uses a Key-value data model and the distributed computing envi— 

ronment.But the problem that query of huge amounts of data in the Key-value database lacks efficiency and has bad real—time performance is 

universa1.To solve 1OW efficiency in query,this system applies multidimensional data mode1 and the indexing technology to the Key-value da— 

tabase.storing fact data in forms of multidimensional data and indexing on the multidimensional model in order to speed up the query.The 

establishment of multidimensional data mode1 and the implementation of indemng technology is systematically described.Finally the thesis 

briefly compares it tO the mainstream Key-value database in terms of advantages and disadvantages. 

Koy Words big data,Key-value database,multidimensional data model,Z-ordering,K—d tree 

CIass Numl ̄r TP39】 

1引言 2系统架构 

随着计算机技术的发展及其在互联网、传感器和科学 系统架构重点描述本系统数据装载和数据查询的过程。 

数据分析等领域的广泛应用,数据量爆炸性地增长_1]。大 

如图1所示,首先通过数据装载工具将数据导入系统 

数据时代的到来促使云数据库技术得到飞速的发展l2]。为 的Hadoop集群[4],同时管理节点抽取数据的维信息并导 

了存储海量数据,各大数据库厂商都相继推出了其云数据 人维元数据服务器进行存储。数据装载完成以后客户端可 

库产品。经研究调查,目前业界普遍认同云数据库具有高 以向管理节点发送查询条件,管理节点解析条件并将其传 

可扩展性、高可用性、采用多租形式和支持资源有效分发等 人维元数据服务器,维元数据服务器查询被传人条件对应 

特点[3],与此同时海量数据查询效率方面的优点鲜有提及。 

的维编码并将其返回给管理节点,管理节点将各个维编码 

事实上,当数据量到达TB乃至PB级时,现有云数据库的 

通过索引技术处理得到索引值或者索引范围。索引通过管 

查询效率普遍低下,多条件复杂查询效率问题尤为突出。 理索引的树结构查询得到其对应事实数据所在的文件地址 

本课题为了解决海量数据查询效率低下这一问题,以事实 或者文件地址范围,此时管理节点将文件地址和操作指令 

数据的属性为基础建立多维数据模型并在此模型上应用索 作为作业参数发送给底层文件系统(Hadoop集群),Ha— 

引技术来加快查询速度。 

doop集群执行作业并给客户端返回查询结果。 

收稿日期:2013年6月25日,修回日期:2013年8月1日 

作者简介:陈梦杰,男,硕士研究生,研究方向:海量数据计算。陈勇旭,男,硕士研究生,研究方向:海量数据计算。贾益斌,男,硕士研 

究生,研究方向:海量数据计算。张一川,男,博士,讲师,研究方向:云计算。宋杰,男,博士,副教授,硕士生导师,研究方向:海量数据 

计算与高能效计算。 

1940 陈梦杰等:基于Hadoop的大数据查询系统简述 第41卷 

原始数据 

一 《 一,........... 

1 l 

数据源 

维 

指令传入…一 

数据传入一 

Hadoc,p集群 

图1系统架构 

3维模型 

上述系统架构中已提及维的相关内容,本节将对维的 

定义和维编码进行详细的描述。 

3.1维定义 

表1按行存储与按列存储优缺点对比 

按行存储 按列存储 

优点快速数据加载和动态负载的高查询时能够避免读不必要 

适应能力(因为行存储保证了相的列,并且压缩一个列中 

同记录的所有域在同一个的相似数据能够达到较高 

HDFS块) 的压缩比 

缺点1)不能支持快速查询处理(因不能提供基于Hadoop系 

为当查询仅仅针对多列表中的统的快速查询处理(列存 

少数几列时,它不能跳过不必要储不能保证同一记录的所 

的列读取); 有域都存储在同一集群节 

2)空间利用率不易大幅提高点而导致元组重构的较高 

(因为混合着不同数据值的列)开销) 

目前,Key-value数据库采用Key-value存储模型对数 

据进行存储,该模型是一种稀疏的、分布式的、持久化的多 

维有序映射表(Map),其特点是简单而灵活。对于Key-val— 

ue存储模型,目前普遍应用的有两种存储方式,即按行存储 

和按列存储。两者各有优点,但是在海量数据复杂查询面 

前都显得力不从心。本文总结了两者不同,表1对比列出 

两种存储方式的优缺点。 

由表1可以看出,无论按行存储或者按列存储,Key- 

value存储模型都在查询处理时显示了弊端。为了解决 

Key-value数据的查询效率低下这一问题,本文提出了利用 

多维存储模型来存储和查找数据。因为对于多维存储模 

型,行和列均作为维信息处理,它们的地位是完全等价的, 

所以不会存在按行查询和按列查询之间出现速度或者效率 

差异的情况。 

定义1维(Dimension):集合D来表示多维数据立方 

体的维集。任取 (1 i-< ),则必有且只有一个维d ( 

∈D)与之对应,即 ~ 。 

定义2维层次:维是有层次的,层次的集合及集合内 

层次间的关系构成一个维。设维d ( ∈D,集合D来表示 

多维数据立方体的维集)有md/个层次,则d的层次集可以 

用下式来表示_5J: 

△( )一{z, l1-< ! m )} (1) 

式(1)中,△为维d 的分层算法,£, (1 mdi)表示维d 

的一个层次。维层次满足: 

A(d )是一个维层次有限集合; 

A(d )中维层次组成为概念层次结构; 

di(d )上存在存在一个偏序关系< ,若V , ∈△ 

( ), .<< z 表示在概念层次中Z。位于z 的下层; 

针对Key-value数据的特征,本系统将维分为三类,分 

别是列名维、版本维和分区维。其中列名表示事实数据的 

名称,如人人网状态的内容;Key-value数据拥有多个版本, 

版本维用来管理事实数据的版本信息,如某个网页每更改 

次内容增加一个版本;分区维数据表示频繁用于查询事 

实数据的查询条件数据,如涉及到天气情况的查询,地点和 

时间即为分区维数据。三种维的确立是构建多维模型的前 

提,以下内容是维模型的系统介绍。 

列名维的设计关键是实现列簇l6],从Key-value数据模 

型的研究中发现,Key-value数据库中列的数量相当大,并 

且不少Key-value数据库支持列簇,包括多级列簇。本系统 

中规定:每列列名各自作为一个列簇,定义为0级列簇;不 

同0级列簇对应的数据被同时查询的概率不同,若干0级 

列簇对应的数据被同时查询的概率大于某个值(可根据具 

体应用设定,经常为经验值),则这些0级列簇被包含于某 

1级列簇;以此类推,最高级列簇包含所有列名。多种类 

型的事实数据被一起用到的概率大于某个阈值而将其放置 

于同一列簇。 

同一条Key-value数据存在多个版本E :原始数据存在 

若干版本,同时某个版本的数据又存在若干版本。为了便 

于版本维的维护,本系统规定:原始数据为0级版本,更新 

原始数据而产生数据的不同版本为1级版本,更新某1级 

版本的数据而产生的不同版本为2级版本;以此类推,最高 

级版本的数据为最新更新的数据。此外,本系统规定每条 

数据的版本的最大个数和原始数据以下不同版本级别的最 

大个数。 

分区维由查询数据的常用查询条件属性组成,常见的 

分区属性有时间、地点等。分区维的实现,关键在于维层次 

的设计,而该维的分层通常有如下两种情况:一种是分区属 

性本身拥有良好的分层结构,根据实际意义进行分层即可; 

另一种是分区属性本身无层次结构,需要人为地将其设计 

成有层次结构,之后再进行分层。 

3.2维编码 

维层次设计完成以后,本系统将解决维编码问题。结 

合以下索引技术,本文将维编码按如下规则设计:第一步, 

确定三个维各自最细粒度的数据量最多存在多少,分别记 

为MColumn、MVersion和MPartition;第二步,选择最大的 

数并计算出能够完全表示此数据量的数据需要多少位二进 

制数,记为BitNum;第三步,确定每个维所需二进制位数为 

BitNum,并为每个维值设置对应的二进制编码。其中第二 

步目的是为了使本系统的多维模型各个维长度保持一致, 

在此基础上才得以成功在多维模型上应用Z-ordering索引 

2013年第12期 计算机与数字工程 1941 

技术 并用K-d treeE。 管理索引(详见下一节介绍)。选择 

最大的二进制位数会导致另外两维若干高位不被使用,本 

系统采取的措施是未被使用的高位用0补上。另外在编码 

过程中,维的叶子节点对应的编码是完整的二进制数,非叶 

子节点的编码采取以下措施:根节点低位全为“*”,“*”的 

个数分别为MColumn、MVersion和MPartition,其中两维 

高位补0;根节点孩子的编码用0、1取代适当位数的高位 

“*”

如根节点拥有4个孩子,其孩子节点编码是用OO、O1、 

1O和11取代根节点最高位的两位“*”、其余保持一致而 

产生的,依次类推完成维属性的所有编码。 

现假设本系统所面向的一个应用拥有200个列,分区 

属性值数量为500,原始数据以下最多不超过3级版本,每 

条数据最多不超过4个版本。 

第一步:确定MColumn一200,MVersion一4。一2。, 

MPartition=500; 

第二步:确定最大数为500,需要9位二进制数才能够 

完全表示此数据量的数据,BitNum=9; 

第三步:每个维所需二进制位数为BitNum=9,按图2 

进行编码。 

列名维: 

最高列簇……~ {0 ・¨}・} } 

//r\\ 

・{。。。 ’) !

 

l、、 

’{。 。 ) 

0级列簇……一{001000000 ‘’{001111111) 

版本维: 

。级版本…一::::,— 7  ,— ~ 

!{00000’’ ){00001 }{00010 }{00011 } 

: 

. .

/一,r、、 . . . . 

3级版本…一{000010000}..・{000011111) 

分区维: 

最粗粒度……一 {””””) 

— 

;{00099 ){001 ’’ ){1l0 }{111 ’ } 

: 

/ ~ 

. .. . . . 

最细粒度…一{001000000}_.・{oo1111111} 

图2维编码方式 

如图2所示,高位的黑色数字为该维的补充位,编码过 

程中始终保持不变。根节点除补充位以外均为“*”,从根 

节点到叶子节点的编码是一个不断用0、1取代高位“*”的 

过程。 

4查询算法的设计 

本系统的查询算法基于Z-ordering索引技术,数据查 

询包括点查询和范围查询。 

Z-ordering技术是把维成员信息的二进制编码进行位 

交叉,生成一个合成的二进制字符串,称之为Z-address或 

者Z-value,作为多维模型中事实数据的索引。本文将用K_ 

d tree来存储管理Z-value,每当用户添加一条数据,其索引 

将插入K-d tree中的某一叶子节点。K-d tree的叶子节点 

与底层文件系统的桶一一对应,其中叶子节点名称与桶号 

致。当某一叶子节点所包含的的索引数超过某一阈值, 

此节点将拆分成两个子节点并将原节点中存储的所有索引 

按照特定规则移动到两个子节点。底层文件中事实数据作 

相应的移动。 

4.1点查询 

首先将查询条件通过维数据库中的映射关系转化成对 

应的维编码,接着将维编码通过Z-ordering技术处理转化 

成Z-value,即事实数据的索引,然后通过K-d tree查询索引 

所在的叶子节点,叶子节点与底层文件有映射关系,通过此 

映射关系得到要查询数据所在的文件,扫描文件得到所要 

的事实数据。 

4.2范围查询 

使用Z-ordering技术的其中一个优点是属性相似的事 

实数据的索引值大小相近,而用K-d tree管理Z-value能保 

证绝大部分相邻的两个索引值在同一叶子节点,极少数情 

况下存在于两个叶子节点。范围查询往往是针对属性相似 

的事实数据,这保证了某一范围的数据所对应的索引集中 

在少数几个叶子节点,而不是离散的较多叶子节点。因此, 

本系统中的范围查询只需确定查询范围中索引的最小值和 

最大值,在此范围的索引所在的叶子节点均为扫描对象。 

5事实数据存储 

查询条件通过维编码映射和Z-ordering索引技术处理 

后得到Z-value,Z-value通过K-d tree查找其所在的叶子节 

点,通过叶子节点与底层文件的映射关系定位具体的文件, 

通过扫描文件得到具体准确的事实数据。上述查询过程的 

介绍说明本系统从索引层传人底层文件系统的数据只有查 

询命令和一个通过解析查询条件并计算得到的Z-value,因 

此要求本系统底层文件中存储部分必须包括事实数据的 

value。本系统采用key-value的形式存储事实数据,其中 

key为事实数据的Z-value,value即事实数据本身。 

器 

图3桶与数据立方的对应关系及命名规则 

蓦 

从上面介绍索引技术部分可以得知,查询条件通过索 

引层得到对应的桶号[1o]后,根据对应桶维护的信息去查找 

相应的数据立方(Cube)。桶(Bucket)是存在于索引层与存 

储层之间是抽象概念,桶内维护多个数据立方的元数据。 

数据立方是以HDFS所支持的分布式文件的形式存储在物 

理层的。桶到数据立方的映射是一对多的,可以根据应用 

需求规定一个桶对应若干个数据立方,其命名方式如图3 

所示,桶内所有数据立方的名称都在桶的子空间名称所覆 

盖的范围内。假如桶号为(11****)并且每个桶对应4 

个数据立方,那么(1100**)~(1111**)范围内的数据 

立方的元数据都会维护在这个桶内。如此设计的方案可以 

保证存储于Cube(1l00**)中的事实数据所对应的Z-value 

前四位肯定是1100。其优点在于当桶数据量超过最大值 

需要切分时,数据移动是以Cube为单位,相对于一条一条 

移动数据,这种方式大大提高了效率。 

6结语 

随着大数据时代的来临,传统关系数据库的拓展性和 

1942 陈梦杰等:基于Hadoop的大数据查询系统简述 

warehouse systems.ICDE,2011:1199—1208. 

第41卷 

查询效率都遇到瓶颈。此时基于海量数据的Key-value数 

据库横空出世,其具有高可用性、容错性、拓展性等特点,但 

同时也暴露出查询的实时陛差,难以支持复杂查询等弊端。 

本文提出一种基于海量数据的多维数据模型Key-value数 

[4]Dhruba Borthakur.The Hadoop Distributed File System[J]. 

Architecture and Design. 

[5]宋杰,侯泓颖,李丹程.MQM:一种用于Web服务查找的多维 

QoS模型[J].小型微型计算机系统,2011(3):1000—1220. 

S0NG Jie,H0U Hongyin,LI Dancheng.MQM:A Multi di— 

据查询系统,并使用分布式内存进一步优化系统的性能,有 

效提高查询命中率和查询实时性。目前本系统的开发已基 

本完成,处于代码整合阶段,接下来将会完成测试和分析的 

工作,并将在实验结果的分析中对本系统的算法设计进行 

改进。同时,在今后的工作中对底层的文件系统进行优化, 

来提高每个桶在集群中的负载平衡提升作业的平行性,进 

mensional QoS Model for Navigating Web Services[J].Journal 

of Chinese Computer Systems,2011(3):1000—1220. 

『6 I Apache HBase,a distributed,versioned,column—oriented da— 

tabase built on top of Apache Hadoop and Apache ZooKeeper. 

Chapter 5.5. 

步提高查询效率。 

参考文献 

[7]Fay Chang,Jeffrey Dean,Sanjay Ghemawat,Bigtable:A Dis— 

tributed Storage System for Structured DataEJ].ACM Trans. 

omputC.Syst.(TOCS),2008,26(2). 

[1]李奕.计算革命与数据价值[J].中国计算机报,2012(10). 

LI Yi.Computing revolution and the value of data[J].China 

Information World,2012,10. 

[8]Foley,James,Andries van Dam,Steven Feiner,John 

Hughes.Computer Graphics:Principle and Practice.Massa— 

chusetts:Addison-Wesley Publishing Company,1987:870—871. 

[2]王海波.云计算中数据库的关键问题研究与实现[D].长春:吉 

林大学,2011,8. 

WANG Haibo.Key Issue Research and Implementation on Da 

[93 Andrew W.Moore.An introductory tutorial on kd—trees. 

omputer Laboratory[D].London:UniCversity of Cambridge, 

1991. 

tabase for Cloud Computer[DJ.Changchun:Jilin University, 

2O11,8. 

[1o]Shoji Nishimura,Sudipto Das,Divyakant Agrawal,et a1. 

M【)IHBase:A Scalable Multi dimensional Data Infrastruc— 

[3]Yongqiang He,Rubao Lee,Yin Huai.RCFile:A fast and 

space-efficient data placement structure in MapReduce-based 

ture for Location Aware Services r C]//IEEE Intemational 

Conference on Mobile Data Management,201 1(12). 

!矫{!锛 !铒  矫 不 矫 筇 !铞 不 乔 !, !铒{’ 希 乖 芥 乖 斧 毋 芥 乖 带 芥 希 带 矫 不 芥 尔 芥 筇 茚 绵 

(上接第19ll页) 

ZHANG Jinhuai,ZHANG Shifeng.Problem of Large Num— 

bers of Prior Information Obliterating the Small Numbers of 

200l:1-3. 

[7]冯蕴雯,黄玮,吕震宙,等.极小子样试验的半经验评估方法 

[J].航空学报,2004,25(9):456 459. 

FENG Yunwen,HUANG Wei,LV Zhenzhou,et a1.The 

Test Information[J].Journal of Spacecraft TT&C Technolo 

gy,2003,22(1):1 5. 

[3]邓海军,查亚兵.Bayes小子样鉴定中仿真可信度研究LJ].系统 

仿真学报,2005,17(7):1566—1568. 

DENG Haijun,ZHA Yabing.Research on Applying Simula— 

Semiempirical Evaluation Method for Extreme Smal1 Sample 

Test[J].Acta Aeronautica Et Astronautica Sinica,2004,25 

(9):456—459. 

tion Credibility into Weapon System Appraisal[J].Journal of 

System Simulation,2005,17(7):1566—1568. 

[8]李鹏波,谢红卫,张金槐.考虑验前信息可信度时的Bayes估计 

_lJ].国防科技大学学报,2003,25(4):107—110. 

LI Pengbo,XIE Hongwei.ZHANG Jinhuai.Bayesian Estima— 

tion W hile Considering the Credibility of the Prior Information 

[4]李庆民,刘君,张志华.武器系统仿真模型的可信性验证方法研 

究rJ].系统仿真学报,2006,18(12):3380—3382. 

LI Qingmin.LIU Jun.ZHANG Zhihua.On Method of Credi— 

[J].Journal of National University of Defense Technology, 

2003,25(4):107一儿O. 

bility Estimation of Weapon System Simulation Model[J]. 

Journal of System Simulation,2006,18(12):3380 3382. 

[9]张湘平,张金槐,谢红卫.关于样本容量、验前信息与Bayes决 

策风险的若干讨论Ij].电子学报,2003,31(4):536—538. 

ZHANG Xiangping,ZHANG Jinhuai,XIE Hongwei.A Few 

Discussion of Samples,A Prior Information and Bayesian Sta 

[5]张金槐,刘琦,冯静.Bayes试验分析方法[D].长沙:国防科技 

大学,2007:16—47. 

ZHANG Jinhuai,LIU Qi,FENG Jing.Bayes Test Analysis 

Methods[Dj.Changsha:National University of Defense Tech— 

nology,2007:16 47. 

tistical Decision[J].Acta Electronica Sinica,2003,31(4):536— 

538. 

[6]唐雪梅,张金槐,邵凤昌.武器装备小子样试验分析与评估 

[1o]张金槐,唐雪梅.Bayes方法(修订版)[M].长沙:国防科技大 

学出版社,1993:7 16. 

ZHANG Jinhuai.TANG Xuemei.Bayes Method(revised edi— 

[M].北京:国防工业出版社,2001:1—3. 

TANG Xuemei.ZHANG Jinhuai,SHA0 Fengchang.Test A— 

nalysis and Evaluation of Weapon Systems in Smalbsample Cir— 

tion)[M].Changsha:Press of National University of Defense 

Technology,1993:7-16. 

cumstanees[M].Beijing:National Defense Industry Press, 


本文标签: 数据 查询 系统 节点 文件