第4章 云数据库及其应用_第1页
第4章 云数据库及其应用_第2页
第4章 云数据库及其应用_第3页
第4章 云数据库及其应用_第4页
第4章 云数据库及其应用_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

第4章云数据库及其应用提纲背景云数据库的分类NoSQL综述Hbase_介绍

随着网民参与互联网产品和应用的程度越来越深,互联网将更加智能,互联网的数据量也将呈爆炸式增长背景-大数据时代

大交易数据:来自电商的数据,包括B2B、B2C、C2C、团购等大交互数据:来自社交网络的数据,SNS、微博等两类数据的有效融合将是大势所趋,这种融合更能增强企业的商业洞察力背景-大数据时代大数据的特征3V——Volume(海量)、Variety(多样)、Velocity(实时)海量——数据量巨大,对TB、PB数据级的处理,已经成为基本配置。多样——处理多样性的数据类型,结构化数据和非结构化数据,能处理Web数据,能处理语音数据甚至是图像、视频数据。实时——在客户每次浏览页面,每次下订单的过程中都存在,都会需要对用户进行实时的推荐,决策已经变得实时背景-大数据时代大数据时代下的系统需求Highperformance–高并发读写的需求

高并发、实时动态获取和更新数据HugeStorage–海量数据的高效率存储和访问的需求

类似SNS网站,海量用户信息的高效率实时存储和查询HighScalability&&HighAvailability–高可扩展性和高可用性的需求

需要拥有快速横向扩展能力、提供7*24小时不间断服务背景-大数据时代背景-传统关系数据库的瓶颈关系数据库如何应对大数据?Highperformance–高并发读写的需求问题:数据库读写压力巨大,硬盘IO无法承受解决方案:Master-Slave,主从分离分库、分表,缓解写压力,增强读库的可扩展性背景-传统关系数据库的瓶颈HugeStorage–海量数据的高效率存储和访问的需求问题:存储记录数量有限,SQL查询效率极低解决方案:分库、分表,缓解数据增长压力背景-传统关系数据库的瓶颈HighScalability&&HighAvailability–高可扩展性和高可用性的需求问题:横向扩展艰难,无法通过快速增加服务器节点实现,系统升级和维护造成服务不可用解决方案:Master-Slave,增强读库的可扩展性MMM——Master-MasterReplicationManagerforMySQL背景-传统关系数据库的瓶颈解决方案的问题1.分库分表缺点:(1)受业务规则影响,需求变动导致分库分表的维护复杂(2)系统数据访问层代码需要修改2.Master-Slave缺点(1)Slave实时性的保障,对于实时性很高的场合可能需要做一些处理(2)高可用性问题,Master就是那个致命点,容易产生单点故障3.MMM缺点本身扩展性差,一次只能一个Master可以写入,只能解决有限数据量下的可用性背景-时代催生了云数据库传统数据库的云化EnterpriseDB淘宝的RDSMicrosoftSQLAzureNoSQL解决方案HadoopHbaseGoogleBigtableCassandra

什么是云数据库?Wikipedia:Aclouddatabaseisadatabasethattypicallyrunsonacloudcomputingplatform,suchasAmazonEC2,GoGrid,SalesforceandRackspace.云数据管理的特点目前,云数据管理技术与产品将全面替代主流关系数据库的呼声越来越高!?特点:去中心化,低成本,无限水平扩展,无间歇在线扩展,海量数据管理能力,开源。成果:在很多领域,替代主流平台,取得明显成功,如Google,Amazon,国内的淘宝等等2023/1/16

VirtualMachineDeploymentDatabaseasaServiceSQL数据模型OracleDatabase[1][11]IBMDB2[12]Ingres(database)[13]PostgreSQL[14]MySQL[15]NuoDB[16]AmazonRelationalDatabaseService

[2]BitCan(MySQL,MongoDB)

[17]MicrosoftSQLAzure

(MSSQL)[18]Heroku

PostgreSQLasaService(sharedanddedicateddatabaseoptions)[19]Morpheus(MySQL,MongoDB,ElasticSearch,Redis)[20]Clustrix

DatabaseasaService[21]Xeround

CloudDatabase*-MySQLfront-end(*servicenolongeravailable)[22]EnterpriseDB

PostgresPlusCloudDatabase[23]NoSQL数据模型CouchDB

onAmazonEC2[24]Hadoop

onAmazonEC2[25]

orRackspace[26]ApacheCassandra

onAmazonEC2[27]Neo4J

onAmazonEC2[28]

orMicrosoftAzure[29]MongoDB

onAmazonEC2,[30]

MicrosoftAzure,[31]

orRackspace[32]AmazonDynamoDBAmazonSimpleDBCloudantDataLayer[33]

(CouchDB)Cloudbase.ioCloudDatabase[34]Dby

SalesForce[35]GoogleAppEngine

DatastoreInstaclustr[36]

(ApacheCassandra)MongoDB

DatabaseasaService(severaloptions)[37]Morpheus(MongoDB,ElasticSearch,Redis,MySQL)[38]Orchestrate[39]提纲背景云数据库的分类NoSQL综述NoSQL的优势CAP理论NoSQL数据模型及分类NoSQL应用现状NoSQL解决方案Hbase_介绍什么是NoSQL?NoSQL是NotOnlySQL的缩写,而不是NotSQL,它不一定遵循传统数据库的一些基本要求,比如说遵循SQL标准、ACID属性、表结构等等。相比传统数据库,叫它分布式数据管理系统更贴切,数据存储被简化更灵活,重点被放在了分布式数据管理上。NoSQL的优势易扩展

NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。也无形之间,在架构的层面上带来了可扩展的能力。甚至有多种NoSQL之间的整合。灵活的数据模型

NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个噩梦。NoSQL的优势高可用NoSQL在不太影响性能的情况,就可以方便的实现高可用的架构。比如Cassandra,HBase模型,通过复制模型也能实现高可用。大数据量,高性能NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。NoSQL的优势分布式数据系统的CAP原理的三要素:一致性(Consistency)可用性(Availability)分区容忍性(Partitiontolerance)CAP原理:在分布式系统中,这三个要素最多只能同时实现两点,不可能三者兼顾对于分布式数据系统,分区容忍性是基本要求对于大多数web应用,牺牲一致性而换取高可用性,是目前多数分布式数据库产品的方向。CAP原理CAP原理NoSQL运动两个核心理论基础:Google的BigTable

BigTable提出了一种很有趣的数据模型,它将各列数据进行排序存储。数据值按范围分布在多台机器,数据更新操作有严格的一致性保证。Amazon的Dynamo Dynamo使用的是另外一种分布式模型。Dynamo的模型更简单,它将数据按key进行hash存储。其数据分片模型有比较强的容灾性,因此它实现的是相对松散的弱一致性:最终一致性。NoSQL数据模型及分类

NoSQL运动两个核心理论基础:NoSQL数据模型及分类分类方法:参见《NoSQLDataModelingTechniques》NoSQL数据模型及分类

分类方法:参见《NoSQLDataModelingTechniques》Key-Value存储:OracleCoherence,Redis,TokyoCabinet类BigTable存储:ApacheHBase,ApacheCassandra文档数据库:MongoDB,CouchDB全文索引:ApacheLucene,ApacheSolr图数据库:neo4j,FlockDBNoSQL数据模型及分类

市场需求NoSQL应用现状使用情况NoSQL应用现状BigTableDynamoCassandraHBaseRedisMongoDB几种主流NoSQL数据库BigTable简介

bigtable是一个分布式的结构化数据存储系统,它被设计用来处理海量数据:通常是分布在数千台普通服务器上的PB级的数据。Google的很多项目使用Bigtable存储数据,包括Web索引、GoogleEarth、GoogleFinance等。数据模型

Bigtable是一个稀疏的、分布式的、持久化存储的多维度排序Map。Map的索引是行关键字、列关键字以及时间戳;Map中的每个value都是一个未经解析的byte数组。

(row:string,column:string,time:int64)->string几种主流NoSQL数据库——BigTable数据模型一个存储Web网页的例子的表的片断行名:”n.www”contents列族:存放的是网页的内容anchor列族:存放引用该网页的锚链接文本。“anchor:”列表示被引用“anchhor:my.look.ca”列表示被my.look.ca引用(”n.www”,”anchor:my.look.ca”,t8)->”CNN.com”几种主流NoSQL数据库——BigTable技术要点基础:GFS,Chubby,SSTable。—BigTable使用Google的分布式文件系统(GFS)存储日志文件和数据文件—Chubby是一个高可用的、序列化的分布式锁服务组件—BigTable内部存储数据的文件是GoogleSSTable格式的。元数据组织:chubby->metadata->tablet。—元数据与数据都保存在GoogleFS中,客户端通过Chubby服务获得表格元数据的位置。几种主流NoSQL数据库——BigTable技术要点数据维护与访问:masterserver将每个tablet的管理责任分配给各个tabletserver,tablet的分布信息都保存在元数据中,所以客户端无须通过master来访问数据,只需要直接跟tabletserver通信。几种主流NoSQL数据库——BigTable技术要点Log-structured数据组织:写操作不直接修改原有的数据,而只是将一条记录添加到commitlog的末尾,读操作需要从log中merge出当前的数据版本。具体实现:SSTable,Memtable。几种主流NoSQL数据库——BigTable特点

1、适合大规模海量数据,PB级数据;

2、分布式、并发数据处理,效率极高;

3、易于扩展,支持动态伸缩;

4、适用于廉价设备;

5、适合于读操作,不适合写操作。

6、不适用于传统关系数据库;几种主流NoSQL数据库——BigTableDynamo简介

Dynamo最初是Amazon所使用的一个私有的分布式存储系统。设计要点

P2P的架构:这区别于GoogleFS的SingleMaster架构,无须一个中心服务器来记录系统的元数据。

几种主流NoSQL数据库——Dynamo设计要点

Performance(性能),Availability(可用性),Durability(数据持久性)三者的折衷,可以根据应用的需求自由调整三者比例。

几种主流NoSQL数据库——Dynamo技术要点数据定位使用一致性哈希;Vectorlock,允许数据的多个备份存在多个版本,提高写操作的可用性(用弱一致性来换取高的可用性)容错:SloppyQuorum,hintedhandoff,Merkletree

SloppyQuorum马虎仲裁,并非采用严格的数据一致性检查,用于实现最终一致性hintedhandoff,节点故障会恢复时,可动态维护系统可用性,使系统的写入成功大大提升。

使用Merkletree为数据建立索引,只要任意数据有变动,都将快速反馈出来。网络互联:Gossip-basedmembershipprotocol,一种通讯协议,目标是让节点与节点之间通信,实现去中心化。StorageloadbalancingClient-drivenCoordination几种主流NoSQL数据库——Dynamo特点高可用:设计上天然没有单点,每个实例由一组节点组成,从应用的角度看,实例提供IO能力。一个实例上的节点可能位于不同的数据中心内,这样一个数据中心出问题也不会导致数据丢失。总是可写:hintedhandoff确保在系统节点出现故障或节点恢复时,能灵活处理可根据应用类型优化可用性、容错性和高效性配置去中心化,人工管理工作少可扩展性较差:由于增加机器需要给机器分配DHT(分布式hashtable)算法所需的编号,操作复杂度较高,且每台机器存储了整个集群的机器信息及数据文件的MerkleTree信息,机器最大规模只能到几千台。几种主流NoSQL数据库——DynamoCassandra简介

ApacheCassandra是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存收件箱等简单格式数据,集GoogleBigTable的数据模型与AmazonDynamo的完全分布式的架构于一身。Facebook于2008将Cassandra开源,此后,由于Cassandra良好的可扩放性,被Digg、Twitter等知名Web2.0网站所采纳,成为了一种流行的分布式结构化数据存储方案。

几种主流NoSQL数据库——Cassandra架构要点使用了GoogleBigTable的数据模型

这是一种面向列的数据库,列被组织成为列族(ColumnFamily),在数据库中增加一列非常方便。对于搜索和一般的结构化数据存储,这个结构足够丰富和有效。系统架构与Dynamo一脉相承是基于O(1)DHT(分布式哈希表)的完全P2P架构,与传统的基于Sharding的数据库集群相比,Cassandra可以几乎无缝地加入或删除节点,非常适于对于节点规模变化比较快的应用场景。Cassandra的数据会写入多个节点保证数据的可靠性,在一致性、可用性和网络分区耐受能力(CAP)的折衷问题上,Cassandra比较灵活,用户在读取时可以指定要求所有副本一致(高一致性)、读到一个副本即可(高可用性)或是通过选举来确认多数副本一致即可(折衷)。这样,Cassandra可以适用于有节点、网络失效,以及多数据中心的场景。

几种主流NoSQL数据库——Cassandra突出特点模式灵活:使用Cassandra,像文档存储,你不必提前解决记录中的字段。你可以在系统运行时随意的添加或移除字段。这是一个惊人的效率提升,特别是在大型部署上。真正的可扩展性:Cassandra是纯粹意义上的水平扩展。为给集群添加更多容量,可以指向另一台电脑。你不必重启任何进程,改变应用查询,或手动迁移任何数据。多数据中心识别:你可以调整你的节点布局来避免某一个数据中心起火,一个备用的数据中心将至少有每条记录的完全复制。

几种主流NoSQL数据库——CassandraRedis简介

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。相比memcached的优势:value类型更丰富数据操作方法更多可将内存数据持久化

几种主流NoSQL数据库——RedisMongoDB简介

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。特点是高性能、易部署、易使用,存储数据方便。

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

几种主流NoSQL数据库——MongoDB主要特点面向集合存储:易存储对象类型的数据,包括文档内嵌对象及数组。模式自由:无需知道存储数据的任何结构定义,支持动态查询、完全索引,可轻易查询文档中内嵌的对象和数组文档型:存储在集合中的文档,被存储为键-值对的形式。键用于唯一标识一个文档,为字符串类型,而值则可以是各种复杂的文件类型。高效的数据存储:支持二进制数据及大型对象支持复制和故障恢复:提供Master-Master、Master-Slave模式的数据复制及服务器之间的数据复制自动分片:以支持云级别的伸缩性,支持水平的数据库集群,可动态添加额外的服务器

几种主流NoSQL数据库——MongoDB不适用场景要求高度事务性的系统传统的商业智能应用复杂的跨文档(表)级联查询

几种主流NoSQL数据库——MongoDB谢谢!HBase简介

HBase–HadoopDatabase,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PCServer上搭建起大规模结构化存储集群。 HBase是GoogleBigtable的开源实现,类似GoogleBigtable利用GFS作为其文件存储系统,HBase利用HadoopHDFS作为其文件存储系统;Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用HadoopMapReduce来处理HBase中的海量数据;GoogleBigtable利用Chubby作为协同服务,HBase利用Zookeeper作为对应。

几种主流NoSQL数据库——HBase数据模型

Rowkey、列族、列、时间戳,同bigtable定义

几种主流NoSQL数据库——HBase物理存储

Table在行的方向上分割为多个HRegion,每个HRegion分散在不同的RegionServer中

几种主流NoSQL数据库——HBase物理存储

每个HRegion由多个

温馨提示

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

评论

0/150

提交评论