文档详情

一种NoSQL数据库-GoogleBigTable的综述.docx

发布:2017-05-25约7.52千字共9页下载文档
文本预览下载声明
一种No SQL数据库-Google Big Table的综述赵小溪 经管会计 201411036022摘要本文对一种主流No SQL数据库,即Google的BigTable进行了综述。对其实现细节进行了表述,深入了解了BigTable的架构,介绍了其读写操作,并提出了其存在的几个问题并给出了解决办法。对BigTable进行了总结和展望。并对No SQL数据库的发展现状和趋势作了简单介绍。引言出现于1998年的No SQL是Carlo Strozzi开发的一个轻量、开源、不提供SQL功能的关系数据库。在2009年,Johan Oskarsson发起了一次关于分布式开源数据库的讨论,来自Rackspace(全球三大云计算中心之一)的Etic Evans再次提出了No SQL的概念,这时的No SQL主要指非关系型、分布式、不提供ACID的数据库设计模式。2009年在亚特兰大举行的no:sql(east)讨论会是一个里程碑,会上对No SQL最普遍的解释是非关系型的,强调键一—值对存储和文档数据库的优点,而不是单纯的关系型数据库。 No SQL是Not Only SQL的简写,其含义是“不仅是结构化查询”,是不同于传统的关系型数据库的数据库管理系统的统称。No SQL与SQL的最显著的区别是No SQL不使用SQL作为查询语言,其数据存储不需要固定的表格模式,也避免使用SQL的JOIN操作,具有水平可扩展性。CAP、BASE和最终一致性是No SQL数据库存在的3大基石。No SQL存储满足了数据存储的横向伸缩性的需求。No SQL以其运行在PC服务器集群上,突破了性能瓶颈,没有过多的需求,支持者源于社区,弹性扩展,大数据量,灵活的数据模型,经济效率高等特点为大数据的存储、传输与处理创造了生态环境,并逐渐走向成熟并广泛应用。Big Table作为一种非关系型数据库,是一个稀疏的、分布式的、持久化存储的多维度排序映射。Big Table能可靠处PB级的数据,并且能够部署到上千台机器上。Big Table具有适用性广泛、可扩展、高性能和高可用性。BigTable简述及其关键技术 Bigtable分布式存储系统是Google开发的第三项云计算关键技术,用于管理Google中的结构化数据。很多 Google的应用程序都需要存储海量数据,比如Google地球、Google分析和网络搜索等,解决方案之一是Google文件系统(GFS),它具有很好的可扩展性,很多的GFS集群可以扩展到300Terabytes,但是GFS用文件的方式来存储数据.具体来说,这些数据文件存储在Linux的文件系统里,而且用GFS来存储的数据是非结构化的数据。为了解决这个问题,Google的软件开发工程师研发了BigTable,并于2005年4月投入使用。Bigtable 具备广泛的适用性、高可扩展性、高性能和高可用性,已经在超过60个Google 的产品和项目上得到了应用。Bigtable借鉴了并行数据库和内存数据库的一些特性,但 Bigtable 提供了一个完全不同接口。Bigtable 不支持完整的关系数据模型,而是为用户提供了简单的数据模型,使客户可以动态控制数据的分布和格式。对Bigtable而言,数据是没有格式的,用户可以自定义Schema。BigTable数据模型 Bigtable是一个稀疏、分布式、持久化存储的多维有序映射表,表的索引是行关键字、列关键字和时间戳。Bigtable 中存储的表项都是未经解析的字节数组,其数据模型如下:(row:string, column:string,time:int64)-string选定该数据模型,是在仔细分析了Bigtable系统的种种用途之后决定的。比如一个存储了大量网页及其相关信息的表 Webtable,Webtable 使用URL作为行关键字,使用网页的某些属性作为列名,网页的内容存入 contents列中,并使用获取该网页的时间戳标识同一个网页的不同版本。在 Bigtable中,Webtable的存储范例如图一所示。图一 Webtable范例片段1.行关键字行关键字可以是任意字符串,目前最大支持 64KB。Bigtable按照行关键字的字典序组织数据,利用这个特性可以通过选择合适的行关键字,使数据访问具有良好的局部性。如 Webtable中,通过将反转的 URL 作为行关键字,可以将同一个域名下的网页聚集在一起。表的行区间可以动态划分,每个行区间称为一个子表。子表是 Bigtable 数据分布和负载均衡的基本单位,不同的子表可以有不同的大小。为了限制移子表的移动和恢复成本,每个子表默认的最大尺寸为200MB。2. 列族列关键字一般都表示一种数据类型,列关键字的集合称作列族,列族是访问控制的基本单位
显示全部
相似文档