第16讲+云计算中的数据库技术_第1页
第16讲+云计算中的数据库技术_第2页
第16讲+云计算中的数据库技术_第3页
第16讲+云计算中的数据库技术_第4页
第16讲+云计算中的数据库技术_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第9章云计算的数据库技术,9.1Google云计算的数据库Bigtable9.2Hadoop的数据库HBase9.3Amazon云计算的简单数据服务SimpleDB9.4Amazon云计算的关系数据库服务RDS9.5 Microsoft云计算的数据库SQLAzure,9.1 goopBigtable是分布式结构化数据存储系统,旨在处理大量数据,即通常分布在数千个普通服务器上的Pb级数据。Google的许多项目使用Bigtable存储数据,包括web索引、Google earth和GoogleFinance。根据数据量(从URL到web页、卫星图像)或响应速度(从后端的批量处理到实时数据服务),这些应用程序的可配置性要求会有很大的差异。尽管应用程序要求各不相同,但对于这些Google产品,Bigtable成功地提供了灵活、高性能的解决方案。分布式结构化数据表BigTable简介,设计动机和目标数据模型系统体系结构主服务器子表服务器,Bigtable的设计动机,需要存储的数据的多样性:Google目前为公众提供了大量服务,需要处理的数据种类也很多。数据(包括URL、web内容和用户个性化)需要在Google中经常处理。庞大的服务请求:Google目前运行着世界上最繁忙的系统,每天处理的客户服务请求数完全不能由普通系统承担。商业数据库不能满足谷歌的要求。传统的商业数据库设计注重通用性,完全不能满足谷歌苛刻的服务要求。另一方面,完全控制底层系统非常容易在将来进行系统维护和升级。Bigtable的设计目标、Bigtable的设计数据模型、Bigtable的设计数据模型-行以及big table的行关键字可以是任何字符串,但大小不能超过64KB。Bigtable与传统关系数据库(不支持普通事务)非常不同,但可以确保对行进行读写操作的原子表中的数据按字母顺序按行关键字排序。例如,n.www是行关键字。不直接存储网址,反过来放置是Bigtable的独创设计。这样可以将具有相同地址域的以下两个或多个web页存储在表的连续位置,从而帮助用户查找和分析排便的数据,并大大提高压缩率。Bigtable的设计数据模型-列,bigtable不只是存储所有列键,而是包含所谓的列族(ColumnFamily),其中每个族中的数据属于同一类型,同一族中的数据已压缩并存储。引入列族的概念后,列键必须具有“族名称:分隔符”(family: qualifier)族名称的意义,并且分隔符可以在具有不同内容、锚点的图形中选择。my.look.ca是锚定族群中不同的分隔符号族群,同时也是Bigtable存取控制(AccessControl)的基本单位。也就是说,访问权限设置是在族级别进行的,是Bigtable的设计数据模型。6159 Google的许多服务(如时间戳、网页搜索和用户个性化)都需要随时间存储数据。这些数据版本必须用时间戳分隔。图2的“内容”列中的T3、t5和T6表示存储了从T3、t5和T6获取的网页。Bigtable的时间戳是64位整数数,特定分配方法可以采用系统默认值,也可以自定义以简化数据管理的其他版本。当前,Bigtable提供两个设置。一种是保留最近n个不同的版本,这种方法是图中的数据模型采取的,并保存最新的3个版本数据。另一种是在有限的时间内保留所有其他版本,例如保存过去10天内的所有其他版本数据。过期版本主要通过客户机库、主服务器和多子表服务器客户访问Bigtable服务的三部分系统体系结构、Bigtable的垃圾回收机制自动处理。首先,使用执行Open()操作的库函数打开锁定(实际导入文件目录)。启用锁定后,客户端可以与子表服务器通信,与许多具有单个主节点的分布式系统一样,客户端很少与主服务器通信,并且可以大大减少主服务器上的负载,从而减少主服务的主要元数据任务和子表服务器之间的负载调度问题。实际数据存储在子表服务器中。在Bigtable中,Chubby的角色具有以下作用:(1)在同一时段内,获取一个主服务器(MasterServer)(2)子表的位置信息(3)存储gtable的模式信息和添加访问控制列表Bigtable的实际运行中,Google的MapReduce和Sawzall还在创建新的子表时加载建立新表格、结合表格和大型子表格的分割时,会建立一或多个新子表格。在前两种情况下,主服务器自动检测,大型子表的分区由子服务启动并执行,因此主服务器不会自动检测到,分区完成后,子服务器必须通知主服务。从系统设计的早期开始,可扩展性就很强,因此主服务器必须监视子表服务器的状态,以便及时检测服务器的加入或取消情况。61510;big table对主服务器子表服务器的监视是通过Chubby执行的子表服务器在初始化时从Chubby获取独占锁定。这样,所有子表格服务器基本信息都存储在Chubby的名为ServerDirectory的特殊目录中。主服务器、主服务器定期提示独占锁定状态。如果子表服务器中的锁定丢失或没有响应(1),则Chubby有问题(这种可能性很小,但实际上存在,并且Google本身也进行了相关测试),可能会发生两种情况。(2)子表服务器本身存在问题。此主服务器首先尝试获取独占锁定,如果故障指示Chubby服务存在问题,则必须等待恢复。如果成功,则Chubby服务良好,并且子表服务器本身存在问题。监视状态时,如果确定子表服务器具有重载,则主服务器将自动平衡负载。主服务器是基于系统故障在每个主服务器上建立会话时间限制的一般设计概念。当主服务器关闭时,管理系统将指定新的主服务器,该服务器将经历以下四个步骤:(1)从Chubby获取独占锁定,同时确保只有一台主服务器。(2)搜索服务器目录以查找当前活动的子表服务器。(3)要了解所有子表分配,请联系所有活动的子表服务器。(4)扫描元数据表,找到未分配的子表,然后将其分配给相应的子表服务器。,Bigtable的日志文件是一种共享日志,每个子表服务器只存储一个日志文件,子表日志只是此共享日志的一个片段。这样可以节省大量空间,但恢复时会有困难。Google稍微改进了日志,以避免出现这种情况。Bigtable规定根据键值对日志的内容进行排序,以便不同的子表服务器可以连续读取日志文件。通常,每个子表的大小介于100MB和200MB之间。每个子表服务器中存储的子表数可以从数十个到数千个不等,通常为100个左右。子表服务器,其中所有子表地址都写入元数据表。由一个元数据子表(Metadatatablet)组成的子表也是元数据表的子表,该子表包含元数据表的第一条记录,也包含其他元数据子表的地址。Chubby的一个文件也存储此子表中的信息。查询时,Chubby可以首先提取此根子表的地址,读取所需元数据子表的位置,然后在元数据子表中查找要查询的最后一个子表。除了这些子表的元数据外,还有其他有助于调试和分析的信息(如事件日志)存储在元数据表中。对子表地址的查询是经常发生的操作。Bigtable系统内部使用类似于b树的三层查询系统。为了减少缓存和预取技术、访问开销并提高客户访问效率,Bigtable使用缓存和预取技术子表将地址信息缓存到客户端,客户在寻址时将直接基于缓存信息进行搜索。如果缓存为空或缓存的信息已过期,则客户端执行网络通信(如图所示),如果缓存为空,则三个网络必须相互通信。如果缓存的信息过期,则6个网络必须前后通信。其中三个用于确保信息未使用,另外三个用于读取多个子表中的元数据,而不是每次访问元数据表时只读取所需的子表元数据,这样,下次无需再次访问元数据表即可在包含多个低成本硬件设备的群集上运行应用程序:元数据表、Bigtable数据存储和读/写操作、9.2Hadoop上的数据库HBase,以及HadoopApache开放源代码组织中的分布式计算框架Hadoop优势(1)可扩展(2)经济(3)可靠性(4)效率、Hbase简介、Hbase是分布式开源数据库,它模仿并提供基于Hadoop分布式文件系统的Bigtable数据库的所有功能。Hbaes的目标是处理非常大的表,普通计算机可以处理10亿多行数据,具有包含数百万列元素的数据表。Hbase可以直接使用本地文件系统或Hadoop作为数据存储方法,但是为了提高数据可靠性和系统稳定性,Hbase处理大量数据等功能需要使用Hadoop作为文件系统。Hbase数据模型,Hbase是类似于Bigtable的分布式数据库,大多数特性与Bigtable一样是稀疏的、长期存储的、多维的、有序的映射表。此表格中的索引是资料列索引键、资料栏索引键和时戳。每个值都是未解释的字符数组,数据是无类型的字符串。用户将数据存储在一个表中,该表具有可在每行中排序的主键和任意数量的列。由于是稀疏存储,同一表中的每个数据行都可以具有非常不同的列。Hbase数据模型,格式为 : 的列名由字符串组成。每个表格都有一个系列集合。此集合与表格的结构相同,只能通过变更表格结构来变更。但是,对于每一行,label值都可以更改。Hbase将同一系列中的数据存储在同一目录下,而Hbase中的写入操作是锁定行,每行是原子元素,因此可以锁定。所有数据库中的更新都带有时间戳标记,每个更新都是新版本,Hbase保留可以设置的特定版本数。客户端可以选择获取最接近特定时间的版本,也可以一次获取所有版本。Hbase逻辑模型、表可以通过大型映射关系、主键或主键时间戳指定数据行的位置。由于是稀疏数据,因此某些列可能是空的上面的图形存储web页的示例列表片段。行名为反向URL 即n.www。“Contents列”族存储网页的内容,“anchor列”族存储参考该网页的锚点链接文本。CNN的主页被引用为SportsIllustrater 又名SI,CNN的ace sports program 和MY-look的主页,因此此行包含“anchor:”和“anchor : MY . look . ca”每个锚定连结均具有一个版本时间戳记(例如T9,t8 ;只有。Contents列有三个版本,标识为时间戳T3、t5和T6。Hbase物理模型、分布式数据库体系结构、Hbase的服务器体系结构也遵循由Hregion服务器场和HBaseMaster主服务器组成的简单主从服务器体系结构。Hregion服务器是用户的一组数据,每个表由主键分隔。实际上,表格已分割为多个图块,每个表格均称为Hregion。使用表名自/到主键区分Hregion。Hregion存储一个表中从起始主键到结束主键的连续数据。整个表格保留在多个Hregion之上。所有数据库数据通常保存在用户通过一系列h区域服务器获得的Hadoop分布式文件系统中,通常在一台计算机上运行一个h区域服务器,而每个部分h区域仅由一个h区域服务器维护。分布式数据库体系结构,如果用户需要更新数据,则分配给相应的h区域服务器以提交修改。这些修改首先写入Hmemcache缓存和服务器的Hlog文件。Hmemcache缓存在内存中,存储最近更新的数据,Hlog是磁盘上记录所有更新操作的日志文件,在将操作写入Hlog之前,不会向客户端返回commit()调用。读取数据时,Hregion服务器首先访问Hmemcache缓存,如果缓存中没有此类数据,则返回到Hstores磁盘进行查找。每个列族都包含Hstore集合,每个Hstore集合都包含b树结构,以便于快速读取。将添加新的HstoreFile文件,并定期调用HRegion.flushcache()以确保缓存的内容写入文件。缓存将被清空,并显示在Hlog中,表示其内容已写入文件。分布式数据库体系结构,启

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论