NoSQL 综述
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
•实时——在客户每次浏览页面,每次下订单的过程中都存在,都会需要对用 实时
户进行实时的推荐,决策已经变得实时
一、大数据时代
•大数据时代下的系统需求 大数据时代下的系统需求
•High performance –高并发读写的需求 高并发、实时动态获取和更新数据 •Huge Storage –海量数据的高效率存储和访问的需求 类似SNS网站,海量用户信息的高效率实时存储和查询 •High Scalability && High Availability –高可扩展性和高可用性的需求 需要拥有快速横向扩展能力、提供7*24小时不间断服务
•Key-Value 存储: Oracle Coherence, Redis, Tokyo Cabinet •类BigTable存储: Apache HBase, Apache Cassandra •文档数据库: MongoDB, CouchDB •全文索引: Apache Lucene, Apache Solr •图数据库: neo4j, FlockDB
只是将一条记录添加到 commit log 的末尾,读操作需要从 log 中 merge 出当前的数据版本。具体实现:SSTable, Memtable。
•BigTable简介 简介
bigtable是一个分布式的结构化数据存储系统,它被设计用来处理海 量数据:通常是分布在数千台普通服务器上的PB级的数据。Google的 很多项目使用Bigtable存储数据,包括Web索引、Google Earth、Google Finance等。
•数据模型 数据模型
各个 tablet server,tablet 的分布信息都保存在元数据中,所以客户 端无须通过 master 来访问数据,只需要直接跟 tablet server 通信。
六、几种主流NoSQL数据库——BigTable 六、几种主流NoSQL数据库——BigTable
•技术要点 技术要点 •Log-structured 数据组织:写操作不直接修改原有的数据,而
•数据模型 数据模型
一个存储Web网页的例子的表的片断
•行名:”com.cnn.www” •contents列族:存放的是网页的内容 •anchor列族:存放引用该网页的锚链接文本。 •“anchor:cnnsi.com”列表示被cnnsi.com引用 •“anchhor:my.look.ca”列表示被my.look.ca引用 (”com.cnn.www”,” anchor: my.look.ca”,t8)->”CNN.com”
Bigtable是一个稀疏的、分布式的、持久化存储的多维度排序Map。 Map的索引是行关键字、列关键字以及时间戳;Map中的每个value都是 一个未经解析的byte数组。 (row:string, column:string,time:int64)->string
六、几种主流NoSHale Waihona Puke BaiduL数据库——BigTable 六、几种主流NoSQL数据库——BigTable
四、CAP原理 四、CAP原理
•分布式数据系统的 分布式数据系统的CAP原理的三要素: 原理的三要素: 分布式数据系统的 原理的三要素
•一致性(Consistency) •可用性(Availability) •分区容忍性(Partition tolerance)
•CAP原理:在分布式系统中,这三个要素最多只能同时实现两点,不可 原理: 原理
能三者兼顾 •对于分布式数据系统,分区容忍性是基本要求 分区容忍性是基本要求 •对于大多数web应用,牺牲一致性 牺牲一致性而换取高可用性,是目前多数分布式 牺牲一致性 数据库产品的方向。
四、CAP原理 四、CAP原理
五、NoSQL数据模型及分类 五、NoSQL数据模型及分类
•NoSQL运动两个核心理论基础: 运动两个核心理论基础: 运动两个核心理论基础
•灵活的数据模型 灵活的数据模型
NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数 据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非 常大数据量的表,增加字段简直就是一个噩梦。
三、NoSQL的优势 三、NoSQL的优势
•高可用 高可用
NoSQL在不太影响性能的情况,就可以方便的实现高可用的架构。比 如Cassandra,HBase模型,通过复制模型也能实现高可用。
•第二种分类方法: 第二种分类方法: 第二种分类方法
•参见《NoSQL Data Modeling Techniques》
五、NoSQL数据模型及分类 五、NoSQL数据模型及分类
•第二种分类方法:参见《NoSQL Data Modeling Techniques》 第二种分类方法: 第二种分类方法
•Huge Storage –海量数据的高效率存储和访问的需求 问题: 存储记录数量有限, SQL查询效率极低 解决方案: 分库、分表,缓解数据增长压力
二、关系数据库的瓶颈
•关系数据库如何应对大数据 关系数据库如何应对大数据
•High Scalability && High Availability –高可扩展性和高可用性的需求 问题: 横向扩展艰难,无法通过快速增加服务器节点实现, 系统升级和维护造成服务不可用 解决方案: Master-Slave,增强读库的可扩展性 MMM——Master -Master Replication Manager for MySQL
图存储
图形关系的最佳存储。使用传统关系 数据库来解决的话性能低下,而且设 计使用不方便。 通过类似面向对象语言的语法操作数 据库,通过对象的方式存取数据。 高效的存储XML数据,并支持XML的 内部查询语法,比如XQuery,Xpath。
对象存储 xml数据库 数据库
五、NoSQL数据模型及分类 五、NoSQL数据模型及分类
二、关系数据库的瓶颈
•关系数据库如何应对大数据 关系数据库如何应对大数据
•MMM架构
http://mysql-mmm.org/mysql-mmm.html
三、NoSQL的优势 三、NoSQL的优势
•易扩展 易扩展
NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的 关系型特性。数据之间无关系,这样就非常容易扩展。也无形之间,在架 构的层面上带来了可扩展的能力。甚至有多种NoSQL之间的整合。
五、NoSQL数据模型及分类 五、NoSQL数据模型及分类
•NoSQL运动两个核心理论基础: 运动两个核心理论基础: 运动两个核心理论基础
五、NoSQL数据模型及分类 五、NoSQL数据模型及分类
•第一种分类方法: 第一种分类方法: 第一种分类方法
类型
列存储
部分代表
Hbase Cassandra Hypertable
key-value存储 存储
Tokyo Cabinet / Tyrant Berkeley DB MemcacheDB Redis Neo4J FlockDB InfoGrid db4o Versant Berkeley DB XML BaseX
可以通过key快速查询到其value。一 般来说,存储不管value的格式,照 单全收。(Redis包含了其他功能)
•元数据组织:chubby->metadata->tablet。
—元数据与数据都保存在 Google FS 中,客户端通过 Chubby 服务获得表格 元数据的位置。
六、几种主流NoSQL数据库——BigTable 六、几种主流NoSQL数据库——BigTable
•技术要点 技术要点 •数据维护与访问:master server 将每个 tablet 的管理责任分配给
二、关系数据库的瓶颈
•关系数据库如何应对大数据 关系数据库如何应对大数据
•High performance –高并发读写的需求 问题: 数据库读写压力巨大, 硬盘IO无法承受 解决方案: Master-Slave,主从分离 分库、分表,缓解写压力,增强读库的可扩展性
二、关系数据库的瓶颈
•关系数据库如何应对大数据 关系数据库如何应对大数据
•大数据量,高性能 大数据量, 大数据量
NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表 现优秀。这得益于它的无关系性,数据库的结构简单。
三、NoSQL的优势 三、NoSQL的优势
•什么是 什么是NoSQL? 什么是 ?
NoSQL是Not Only SQL的缩写,而不是Not SQL,它不一定遵循传统数 据库的一些基本要求,比如说遵循SQL标准、ACID属性、表结构等等。相 比传统数据库,叫它分布式数据管理系统更贴切,数据存储被简化更灵活, 重点被放在了分布式数据管理上。
特点
顾名思义,是按列存储数据的。最大 的特点是方便存储结构化和半结构化 数据,方便做数据压缩,对针对某一 列或者某几列的查询有非常大的IO优 势。 文档存储一般用类似json的格式存储, 存储的内容是文档型的。这样也就有 有机会对某些字段建立索引,实现关 系数据库的某些功能。
文档存储
MongoDB CouchDB
五、NoSQL应用现状 五、NoSQL应用现状
•市场需求 市场需求
五、NoSQL应用现状 五、NoSQL应用现状
•使用情况 使用情况
六、几种主流NoSQL数据库 六、几种主流NoSQL数据库
•BigTable •Dynamo •Cassandra •HBase •Redis •MongoDB
六、几种主流NoSQL数据库——BigTable 六、几种主流NoSQL数据库——BigTable
六、几种主流NoSQL数据库——BigTable 六、几种主流NoSQL数据库——BigTable
•技术要点 技术要点 •基础:GFS, Chubby, SSTable。
—BigTable使用Google的分布式文件系统(GFS)存储日志文件和数据文件 —Chubby是一个高可用的、序列化的分布式锁服务组件 —BigTable内部存储数据的文件是Google SSTable格式的。
一、大数据时代
随着网民参与互联网产品和应用的程度越来越深,互联网将更加智 能,互联网的数据量也将呈爆炸式增长
一、大数据时代
•大交易数据:来自电商的数据,包括B2B、B2C、C2C、团购等 •大交互数据:来自社交网络的数据,SNS、微博等 •两类数据的有效融合将是大势所趋,这种融合更能增强企业的商业洞察力
一、大数据时代
•大数据的特征 大数据的特征
3V——Volume(海量)、Variety(多样)、Velocity(实时) •海量——数据量巨大,对TB、PB数据级的处理, 已经成为基本配置。 海量 •多样——处理多样性的数据类型,结构化数据和非结构化数据,能处理Web数 多样
据,能处理语音数据甚至是图像、视频数据。
•Google的BigTable 的 BigTable提出了一种很有趣的数据模型,它将各列数据进行排序存 储。数据值按范围分布在多台机器,数据更新操作有严格的一致性保证。 •Amazon的Dynamo 的 Dynamo使用的是另外一种分布式模型。Dynamo的模型更简单,它 将数据按key进行hash存储。其数据分片模型有比较强的容灾性,因此 它实现的是相对松散的弱一致性:最终一致性。
二、关系数据库的瓶颈
•解决方案的问题 解决方案的问题
1.分库分表缺点: 分库分表缺点: 分库分表缺点 (1)受业务规则影响,需求变动导致分库分表的维护复杂 (2)系统数据访问层代码需要修改 2. Master-Slave缺点 缺点 (1)Slave实时性的保障,对于实时性很高的场合可能需要做一些处理 (2)高可用性问题,Master就是那个致命点,容易产生单点故障 3. MMM缺点 缺点 本身扩展性差,一次只能一个Master可以写入,只能解决有限数据量 下的可用性
NoSQL综述 NoSQL综述
mengxl 2012 032012-03-14
主要内容
• 大数据时代 • 关系数据库的瓶颈 • NoSQL的优势 NoSQL的优势 • CAP理论 CAP理论 • NoSQL数据模型及分类 NoSQL数据模型及分类 • NoSQL应用现状 NoSQL应用现状 • 重点介绍几个NoSQL 重点介绍几个NoSQL