海量数据管理技术
云计算需要对分布的、海量的数据进行处理、分析,因此,数据管理技术必须能够高效地管理大量的数据。云计算系统中的数据管理技术主要是Google的BT(BigTable)数据管理技术和Hadoop团队开发的开源数据管理模块HBase。
BT是建立在GFS、Scheduler、Lock Service和MapReduce之上的一个大型的分布式数据库,与传统的关系数据库不同,它把所有数据都作为对象来处理,形成一个巨大的表格,用来分布存储大规模结构化数据。
Google的很多项目都使用BT来存储数据,包括网页查询、Google Earth和Google金融。这些应用程序对BT的要求各不相同:数据大小(从URL到网页到卫星图像)不同,反应速度不同(从后端的大批处理到实时数据服务)。对于不同的要求,BT都成功地提供了灵活高效的服务。
云计算系统对大数据集进行处理、分析向用户提供高效的服务。因此,数据管理技术必须能够高效地管理大数据集。其次,如何在规模巨大的数据中找到特定的数据,也是云计算数据管理技术必须解决的问题。
云计算的特点是对海量的数据存储、读取后进行大量的分析,数据的读操作频率远大于数据的更新频率,云中的数据管理是一种读优化的数据管理。因此,云系统的数据管理往往采用数据库领域中列存储的数据管理模式,将表按列划分后存储。
云计算的数据管理技术中最著名的是谷歌提出的BigTable数据管理技术。由于采用列存储的方式管理数据,所以如何提高数据的更新速率以及进一步提高随机读速率是未来的数据管理技术必须解决的问题。
这里以BigTable为例。BigTable数据管理方式设计者--Google给出了如下定义:"BigTable是一种为了管理结构化数据而设计的分布式存储系统,这些数据可以扩展到非常大的规模,例如在数千台商用服务器上的达到PB(Petabytes)规模的数据。"
BigTable对数据读操作进行优化,采用列存储的方式,提高数据读取效率。BigTab1e管理的数据的存储结构为:
<row:string,c0lumn:string,time:int64>→stringo BigTable
其基本元素是:行、列、记录板和时间戳。其中,记录板是一段行的集合体,如图3-12所示。
图3-13 BigTable中存储记录板位置信息的结构