摘要:云计算,就是指通过互联网利用可伸缩的一种虚拟化资源进行数据存取的计算模式。利用云计算可以实现终端之间数据的随意存取,为计算机硬件存储空间短缺这一问题带来了新的解决方案。云计算的强大运算功能背后是需要一个系统的云数据管理系统来支撑的。其数据查找技术,则是保证用户能够在庞大的云数据库中快速找到自己所需的数据的基础技术。与传统的计算机查找技术不同,云数据管理系统中的查询技术更加先进高端,技术性更强。该文中首先分析了云数据管理系统的基本框架和云数据查询查询处理的目标特性,继而详细介绍了目前常用的两种云数据管理系统查询技术:BigTable技术和Dynamo技术。
关键词:云计算;数据管理;查询技术;系统框架
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)12-2761-03
随着计算机信息技术的不断发展与应用,越来越多的互联网应用技术被研发应用,极大的改善了人们的生活观念与工作习惯,促进社会快速进入一种全新的信息化时代。云计算技术就是这样一种具有跨时代性质的新兴互联网应用技术,实现了高效海量、存取方便的数据云端管理,极大的提高了信息查询速度和数据存储能力,为互联网的进一步发展提供了更大的空间。
云计算是一种具有可扩展性、海量性、高可用性、种类多样性、按需服务性等诸多优点的高性价比的计算技术,可以实现异地备份,随时随地存取数据,因而节省了大量的存储设备投资,具有很大的经济性。但需要注意的是云计算是为了能够实现快速高效的为用户提供信息资源而服务的,因而其所需的云数据管理系统以及查询技术是与传统的计算机管理与查询技术有着很大区别的。云数据管理系统需要一个能够灵活运用数据模型来进行高效多样化管理的数据管理与查询技术,以实现按需索取、快速高效可靠的数据存取与查询服务。
1 云数据管理系统的基本框架构成
为了能够更好的体现出云计算技术的优越性能,就需要对云数据管理系统的管理技术与查询技术进行全面优化升级,改进传统数据库中存在的诸多问题,使云数据管理系统的整体架构更加合理健全。在此,我们来简要概述云数据管理系统的基本框架构成主要包含哪些内容。一般认为,云数据管理系统的基本构架应当含有应用接口层、查询处理层、数据控制层以及数据存储层等四部分。具体分析如下所示:
1.1 应用接口层
这个环节主要是为了接收用户上传的信息数据请求,并将这些信息数据转交给查询处理层进行一定处理,从而提供云数据管理中所需的查询语言接口、用户自定义接口、数据分析以及在线聚集等诸多应用,这样就可以使用户不但能够通过查询接口和用户自定义接口操作数据,也能够以可视化工具来对数据进行分析,或者在线聚集。
1.2 查询处理层
这个环节主要是为了将应用接口层中所提交的用户数据信息做出解析处理和逻辑优化之后再将其转变为操作符树,以促使其生成MapReduce执行计划。但若应用接口在提交信息数据时是以用户自定义操作的模式来实现的,那么就可以无须处理直接生成MapReduce执行计划。除此之外,查询处理层还具有依照查询类型与数据的分布特点将信息数据做成查询计划并对计划作出逻辑性优化的重要任务。
1.3 数据控制层
这个环节主要起到三个作用,即通过全局索引以及原数据信息将数据进行定位处理,备份数据以及数据迁移。并在在线聚集的环节中将数据信息做出统一采样收集,并对进程进行估计。由于数据层是至直接影响到查询执行与在线聚集的重要环节,因此做好数据控制层的管理技术改进是非常重要的。
1.4 数据存储层
顾名思义,数据存储层就是对数据信息进行存储的主要环节,并负责将每个节点范围中的所有数据进行索引设计,对缓冲区及日志进行管理。其中存储层的节点是能够通过以多种形式组合形成的。但不管是利用哪种形式结构,其所含的数据都是要被分区到各个节点进行存储的,因此,保证数据分布的均匀合理,提高节点的数据存取效率是当前数据存储层发展中的重点问题。
2 云数据查询处理技术的目标特点
目前,在云数据的管理系统中,若要促使云数据管理的服务更方便快捷,就需要不断提高其查询处理技术,在此,我们来详细分析云数据查询处理技术需要达到的目标特点,即可扩展性、可用性、异构环境的运行能力以及丰富灵活的用户接口、高效的数据存取性能。
2.1 可扩展性
由于不同的云系统其所具有的云平台是有很大不同的,无论是从规模大小方面,还是服务应用方面都是有着一定的差异。一般小规模的个人或者私有云平台只具有十几个节点,而一些规模较大的公有的云平台则可以有几千个之多的节点。另外,由于云计算技术是一种以用户需求为依据来实现服务的技术,因此其必须要根据用户的需要来进行不同的云平台规模变换,这些都给云数据管理系统提出了良好扩展性的要求。这种扩展性不但要体现在查询处理的性能方面,还体现在优化算法方面。要使信息资源不但能扩展到云平台上,还要能够最大程度的实现资源的可动态增长,提高其所带来的良好性能。
2.2 可用性
由于云平台主要是通过普通的计算机为基本硬件来构成的,因此其与其他性能较高的服务器相比,硬件设备性能较差,因而云平台的硬件较易出现错误。而云数据管理系统则要将这一错误看做常态,在发生硬件错误时,也要保证所有的数据都完整无缺,以确保数据的正常操作。
2.3 在异构环境中运行能力较强
就目前的计算机互联网技术的发展来看,会有越来越的数据需要被储存与管理,这就给云平台提出了更高的要求,如增多节点来提升云数据系统的存储能力。所以,要确保同一云平台所有的计算机硬件都达到同样的配置显然是不可能的,这样就要求云数据的查询技术必须要具备一定的异构环境运行能力,只有这样才能有效的减少性能差的节点对整个云数据管理系统运行效率的影响。
2.4 丰富灵活的用户接口
为了满足用户的不同需求和不同阶段与层次的用户要求,云数据管理系统需要不断增多用户接口的种类,要做到能够满足所有的用户对数据库的上传与下载需求。因此除了要对SQL接口要进行改进外,还要对UDF接口进行增多种类,以满足用户自行操作需求。
2.5 高效的数据存取性能
由于云数据管理系统的优良特性,其在成本维护方面要远远低于传统的数据管理成本,而其海量的数据处理效率也成为用户最关心的问题,因而实现高效的数据存取性能与处理查询能力是非常重要的。
3 云数据管理系统的查询技术
在对云数据管理系统的基本框架与查询处理技术的目标特点进行分析后,可以看出在云计算的技术应用中,基于云计算海量、高效、异构等特点,其查询技术必须要具备强大的功能方能满足云计算查询需求。在此,笔者介绍两种常用的云数据管理系统的查询管理技术,具体介绍如下所示:
3.1 BigTable技术
Google提出的BigTable技术是建立在GFS和MapReduce之上的一个大型的分布式数据库,BigTable实际上的确是一个很庞大的表,它的规模可以超过1PB(1024TB),它将所有数据都作为对象来处理,形成一个巨大的表格。
BigTable就是一个稀疏的、多维的和排序的Map,每个Cell(单元格)由行关键词、列关键词和时间戳来进行三维定位。BigTable使用一个3层的、类似B+树的结构存储Tablet的位置信息。
第1层是一个存储在Chubby中的文件,它包含了Root Tablet的位置信息,Root Tablet包含了一个特殊的METADATA表里所有的Tablet的位置信息。METADATA表的每个Tablet包含了一个用户Tablet的集合。Root Tablet实际上是METADATA表的第1个Tablet,只不过对它的处理比较特殊(Root Tablet永远不会被分割)这就保证了Tablet的位置信息存储结构不会超过3层。其中在Chubby中存储着多个Root Tablet的位置信息。Metadata Tables中存储着许多User Table的位置信息。因此当用户读取数据时,需先从Chubby中读取Root Tablet的位置信息然后逐层往下读取直至找到所需数据为止。
BigTable的负载均衡采用的是传统的方式,BigTable在执行任务时,在任意时刻每个Tablet只被分配到一个Tablet服务器。依靠一个master服务器监视子表server的负载情况,根据所有子表服务器的负载情况进行数据迁移的,比如将访问很热的列表迁移到压力轻的子表服务器上,以调节Tablet服务器的负载平衡。
3.2 Dynamo技术
Dynamo是一个高可用,专有的键值结构化存储系统,或分布式存储系统.它同时具有数据库和分布式Hash表(DHT)的特征,并不直接暴露在外网,而是为Amazon Web Services(AWS)提供底层支持。目前Dynamo已经有很多实现,典型的有:Apache Cassandra,Project Voldemort,Riak。
Dynamo是采用DHT作为基本存储架构和理念,这个架构最大特点是能让数据在环中“存储”均匀,各存储点相互能感知(因数据需要在环内转发,以及相互之间进行故障探测,因此需要节点之间的通信),自我管理性强,因为它不需要Master主控点控制,无单点故障危险。
此外,Dynamo的主要优点是,它提供了使用3个参数(N,R,W),根据自己的需要来调整它们的实例。Dynamo支持对对象的不同版本进行记录和处理,并且可以将不同版本提供给应用,供应用自己更灵活地进行合并。对象的副本数遵循(N,R,W)的规则,N个副本,如果R个读取的一致则确定读取成功,如果W个写入成功则认为写入成功,不要求全部N个都成功完成,只要R+W>N,数据的最终一致性就可以得到保障。这里,读取比一次写多次读的系统(如HDFS)麻烦,但写入变简单了,这反映了应用的需求。
4 结束语
随着科技的进步与计算机信息技术的不断推广发展,信息产业对数据的存储、处理、查询功能提出了更高的要求,这样就使得计算机的传统数据库已经远远不能满足需求。而云数据管理系统的应用很好的解决了数据的存储难题。但由于云数据管理系统还处于初期应用阶段,其在索引管理、查询处理、查询优化和在线聚集等诸多方面都还存在着很大的进步空间。尤其是云数据管理系统中的查询技术,更是需要加大研究力度,进一步提高查询技术水平,以促使云计算以及云数据管理系统能够更好的为用户提供服务。
参考文献:
[1] 吉义,傅建庆,张明西,等.云数据管理研究综述[J].电信科学, 2010.
[2] 吴吉义,平玲娣,潘雪增.云计算:从概念到平台[J].电信科学, 2009(12).
[3] 陈康,郑纬民.云计算:系统实例与研究现状[J].软件学报, 2009(5).