云数据库体系架构的研究.docx
《云数据库体系架构的研究.docx》由会员分享,可在线阅读,更多相关《云数据库体系架构的研究.docx(8页珍藏版)》请在冰豆网上搜索。
云数据库体系架构的研究
云数据库体系架构的研究
一、云技术现状
云计算(cloudcomputing)是IT技术发展的最新趋势,正受到业界和学术界的广泛关注。
云计算是在分布式处理、并行处理和网格计算等技术的基础上发展起来的,是一种新兴的共享基础架构的方法。
它可以自我维护和管理庞大的虚拟计算资源(包括计算服务器、存储服务器、宽带资源等等),从而提供各种IT服务。
用户在使用云计算提供的服务时按需付费,这不仅降低了使用门槛,也极大地节省了开销。
由于云计算存在着巨大的潜在市场,Google,IBM,Microsoft,Amazon,Sun,HP,Yahoo,Oracle等国际知名大公司都已经涉足云计算。
云计算也开始在电信、金融等需要大规模并行处理的领域得到应用,比如中国移动研究院开发的云数据挖掘平台BC-PDM和云数据库产品HugeTable。
随着云计算技术的不断升温,它对各个技术领域的影响开始显现,其中比较典型的包括数据库领域。
截止到现在,传统的数据库厂商,比如Oracle,Teradata,IBM,Microsoft等,都已经推出了基于云计算环境的相关数据库产品。
原来没有从事数据库产品开发的知名大公司,比如Amazon和Google等,也发布了SimpleDB和BigTable等产品。
面对数据的海量存储以及需求的动态变化,传统关系型数据库已经显得力不从心。
为了满足互联网发展以及互联网用户对数据海量存储的需求,Amazon、Google、Microsoft等公司相继对云数据库管理系统进行了深入研究,并生产了自己企业的云数据库。
具有代表性的云数据库有Amazon的simpleDB、Google的BigTable以及yahoo的PNUTS等。
与此同时,许多云数据库的相关问题开始被关注,比如云数据库的体系架构、数据模型、事务一致性、数据安全和性能优化等等。
二、云数据库介绍
1、云数据库概述
云数据库是在SaaS(software-as-a-service:
软件即服务)成为应用趋势的大背景下发展起来的云计算技术,它极大地增强了数据库的存储能力,消除了人员、硬件、软件的重复配置,让软、硬件升级变得更加容易,同时也虚拟化了许多后端功能。
云数据库具有高可扩展性、高可用性、采用多租形式和支持资源有效分发等特点。
可以说,云数据库是数据库技术的未来发展方向。
目前,对于云数据库的概念界定不尽相同,本文采用的云数据库定义是:
云数据库是部署和虚拟化在云计算环境中的数据库。
如图1所示,在云数据库应用中,客户端不需要了解云数据库的底层细节,所有的底层硬件都已经被虚拟化,对客户端而言是透明的。
它就像在使用一个运行在单一服务器上的数据库一样,非常方便、容易,同时又可以获得理论上近乎无限的存储和处理能力。
图1云数据库应用示意图
2、云数据库的特性
云数据库具有以下特性:
(1)动态可扩展
(2)高可用性
(3)较低的使用代价
(4)易用性
(5)大规模并行处理
三、云数据库体系架构
云数据库的系统体系架构多种多样,本文主要介绍采用键/值数据模型和关系数据模型的系统体系架构以及可扩展分布式关系型系统体系架构。
1、HBase体系架构
HBase(HadoopDatabase),是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PCServer上搭建起大规模结构化存储集群。
HBase是谷歌Bigtable的开源实现,其采用的架构和Bigtable类似。
如图2所示。
图2Hbase的体系架构
HBase体系架构中主要包括5部分,分别为:
Client,ZookeeperHmaster,HRegionServer和Store,具体功能如下:
(1)Client:
为用户访问数据库提供了接口。
(2)Zookeeper:
主要用于存储数据库模式和所有HRegion的地址,并实时监控HRegion—Server的状态。
(3)HMaster:
主要为每个HRegionServer分配其要维护的HRegion群组,实现负载均衡,HBase中仅有一个Masterserver。
(4)HRegionServer:
每个HRegionServer主要用于管理多个HRegion,确保其能为Client提供服务,并及时向HMaster提供自己的运行状况信息。
(5)Store:
主要用于实现数据库的存储功能,其由两部分组成:
MemStore和StoreFiles。
更新数据首先会存储到MemStore中,并当MemStore数据存储满了之后再将数据存储到StoreFile中,其中StoreFile存放在分布式文件系统的HFile中。
2、SQLAzure体系架构
SQLAzure是一种基于云计算的关系型数据库服务,基础架构类似于SQLServer2008,但它与SQLServer2008有所不同,其在内部包含了很多虚拟服务器,可以根据需求的动态变化而改变参与计算的虚拟机数量。
SQLAzure以关系模型存储数据,并且每台虚拟机都安装了数据库管理系统。
一般情况下,一个完整的数据库会被存储到多台虚拟机中。
每台虚拟机的结构相同,都包括SQLAzureFabric,管理服务,若干数据库实例,管理服务主要用于实现数据同步,这就避免了因为更新操作而导致的每台虚拟机中数据的不同,从而保证了数据的高可用性。
同时,虚拟机通过SQLAzureFabric和管理服务之间互相交换信息,从而监控整体服务的状态。
如图3所示。
图3SQLAzure的体系架构
3、可扩展分布式关系型系统体系架构
可扩展分布式关系型系统是在非关系型数据库存储系统基础上提出来的,并借鉴了RDBMS数据模型的高效性和NoSQL数据库的高可用性,其体系架构如图4所示。
图中实线箭头用于表示组件间数据的传输功能;虚线箭头用于表示组件间对信号的控制功能。
系统服务组件主要包括五种,分为别:
RS(主服务,主要用于维护系统最底层的元数据),US(更新服务,主要用于执行系统的更新操作),CS(主干服务,主要用于存储用于查询的静态数据),MS(合并服务,主要用于处理查询请求时数据的合并相关操作),client(客户端,主要为用户操作数据库提供接口)。
图4可扩展分布式关系型系统体系架构
客户端查询流程,如图5所示。
(1)首先客户端向处理合并操作的合并服务组件发送查询请求;
(2)合并服务组件接到请求后首先向主服务发送定位请求,获取相应数据所在服务器的位置;
(3)主服务组件RS根据合并服务的请求获取相应的定位信息并返回给合并服务组件;
(4)合并服务组件根据返回的定位信息首先向存储静态数据的主干服务组件CS发送查询请求;
(5)主干服务组件CS根据请求返回满足条件的静态数据;
(6)合并服务组件然后根据从主服务返回的定位信息向存储动态数据的更新服务组件发起动态查询请求;
(7)更新服务组件根据请求向合并服务组件返回满足需求的动态数据;
(8)合并服务组件将(5)和(7)返回的数据进行处理并将最终结果返回给客户端。
图4数据查询流程
四、云数据库体系架构的探索
HBase体系架构采用键/值数据模型,解决了传统关系数据库只能存储关系型数据的瓶颈,其不仅可以存储结构化数据,同时也可以存储半结构化以及非结构化数据,并可以通过Zookeeper实时监控系统运行状态,保证交叉操作数据的正确性。
SQLAzure体系架构采用关系数据模型,可以使用与人们所熟悉的SQLServer相同的方式来使用,在扩展性、可用性等方面相对传统数据库来说具有很好的改进,并可以通过管理服务实现数据间的同步。
可扩展分布式关系型系统体系架构既具有关系数据库的便携性同时又增加了NoSQL的可扩展性,提出了一种全新的数据读写、合并以及存储流程。
三者在实现方式上有所不同,但他们的基本目的是一致的,都是尽可能保证系统的高可用性以及高效性,三者具有相对的优势,但如果将其优点进行融合,各自发挥各自的优势,便可带来新的体验。
下面介绍一种在三者基础上提出的云数据库体系架构。
该体系架构融合了Hbase、SQLAzure、可扩展分布式关系型系统体系架构三者的优点,将用户的操作分为更新操作和查询操作两种。
首先客户端通过访问端口进行操作,如果是查询操作并且客户端存储了相应的分区映射图,直接到指定的HregionServer读取数据,如果未存储相应的分区映射图则首先通过Hmaster—select获取相应的分区映射图之后再到指定的HregionServer读取数据。
因为不需要执行更新操作,Store中只有存储数据的Storefile。
如果用户执行的是更新操作,则首先经过Zookeeper检查一下相应的HRegionServer的状态,若可用则连接到相应的HregionServer,否则Hmaster_update会根据负载均衡分配可用的Hre—gionServer,并将数据首先放到MemStore中,在适当的时机自动更新到Storefile中。
另外,每一个HregionServer中包含一个管理服务,并且管理服务间相互连接,从而实现数据的同步。
如图6所示。
图6云数据库体系架构探索示意图
该体系架构与Hbase体系架构相比,采用了其监控的模式,不同的是每一个体系中含有两个Hmaster,分别为Hmaster—select和Hmaster—update,二者都可以管理HRegionServer的负载均衡,调整Region的分布,区别在于前者主要用于管理用户对Table的查询操作,后者主要用于管理用户对Table的增加、删除、修改操作。
与SQLAzure体系架构相比,采用了其利用管理服务实现数据同步的功能。
与可扩展分布式关系型系统体系架构相比,主要采用了其查询和更新操作相分离的思想,这样执行不同的操作目的性强,在一定程度上节省了时间。
五、结束语
随着信息量的增加,计算机所要处理的数据呈指数级别的增长,传统的关系型数据库已经不能满足用户的需求。
云数据库为解决该问题提供了一种可行的解决方案,日益受到业界和学术界的普遍关注。
云数据库的出现必定会带来一场巨大的变革,诸如:
数据存储的变革、极大的改变企业管理数据的方式、催生新一代的数据库技术、数据库市场份额面临重新分配、浏览器模式的改变、影响了DBA的工作量以及开发者的访问方式等。
就目前阶段而言,虽然已经出现了一些云数据库产品,其体系结构不尽相同,但总体目标都是尽可能保证数据的高效性、高可用性等云数据库特有的特性。
但这些系统暂时并未完全实现云数据库相对传统数据库所有的优势,让这些系统能完全满足用户不断发展的需求仍需人们的共同努力。
参考文献
[1]史英杰,孟小峰.云数据库管理系统中查询技术研究综述[J].ChineseJournalofComputers,2013,36
(2).
[2]ChenK,ZhengwM.Cloudcomputing.Systeminstancesandcurrentresearch.Journalofoftware,$2009,20(5):
1337—1348(inChinesewithEnglishabstract).http:
//www.jOS.org.cn/1000—9825/3493.htm[doi:
10.3724/SP.J.1001.2009.034933.
[3]林子雨,赖永炫,林琛,邹权.云数据库研究[J].JournalofSoftware,2012,23(5).
[4]王献美,吴迪冲,朱泽飞,李仁旺.可扩展分布式关系型云数据库方案[J].华中科技大学学报(自然科学版),2012,40
(1).
[5]ThearchitectureofHbase.http:
//hbase.apache.org/book.html#architecture.
[63ThearchitectureofSQLAzure.http:
//zh.wikipedia.org/wiki/SQL—Azure.
[7]BondBC,CorbettJCFurmanJJ.Megastore:
providingscalablehighlyavailablestorageforinteractiveservices,CIDR’11:
223—234[R3.Asilomar:
CIDR2011.