大数据学习笔记之三十五 NoSQL相关知识
2017-02-21 09:12
344 查看
1)
传统关系型数据的特点
优点
容易理解,二维结构
使用方便,SQL语言是的操作方便
高性能,出色的索引,高效的查询
事务一致性,要个的强一致性支持
易于维护,丰富的完整性降低了数据冗余和数据不一致的概率
缺点
维护一致性会使系统的读写性能比较差
由于固定的表结构,扩展性比较差
2)NoSQL:Not Only SQL
有良好、便捷的横向扩展性,可以满足海量数据的存储需求,NoSQL是一种无模式的存储模型,可以支持多样的数据模型
2.1) 理论基础
CAP理论
对于一个分布式系统来讲,不可能同时满足一致性、可用性、分区容错性,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)不能同时满 足,所以为了高度的可用性,只能牺牲一致性,以最终一致性取而代之
最终一致性
过程松,结果紧,最终结果必须保持一致性
2.2)分布式模型
分片
把一个数据库切分成多个部分放到不同的数据库节点中,从而缓解单一数据库的性能问题,数据库的各部分存放在不同的服务器上实现横向扩展
类型
水平切分
将同一个表中的不同数据拆分到不同的数据库中,水平切分适合表不多,但是表数据特别多的情况,可以根据ID或者Hash来分
垂直切分
将不同的数据分片存放在独立的节点上,每个节点只负责自身数据的读取与写入操作,适合业务之间耦合度非常低、相互影响很小、业务逻辑非常清晰的系统
复制
主从复制
由主节点接受更新请求操作,在事务操作完成后,在事务提交前或后讲操作通知其他从节点,从节点来处理所有的读请求
对等复制
节点间是对等的,可以通过多点提高事务的吞吐率
3)数据库分类
列存储
代表
HBase
Cassandra
Hypertable
特点
按列存储结构,方便存储结构化和半结构化数据,方便做数据压缩,对针对某一列或某几列的查询具有I/O优势
文档存储
代表
MongoDB
CouchDB
特点
用类似JSON的格式存储,存储的内容是文档类型的,便于对某些字段建立索引,实现关系型数据库的部分功能
key-value存储
代表
Berkeley DB
MemcacheDB
Redis
特点
可以通过key快速查询响应value,不必考虑value的存储格式
图数据库
代表
Neo4j
FlockDB
特点
图形关系的最佳存储,如果使用关系型数据库存储的话,性能低,而且设计复杂
传统关系型数据的特点
优点
容易理解,二维结构
使用方便,SQL语言是的操作方便
高性能,出色的索引,高效的查询
事务一致性,要个的强一致性支持
易于维护,丰富的完整性降低了数据冗余和数据不一致的概率
缺点
维护一致性会使系统的读写性能比较差
由于固定的表结构,扩展性比较差
2)NoSQL:Not Only SQL
有良好、便捷的横向扩展性,可以满足海量数据的存储需求,NoSQL是一种无模式的存储模型,可以支持多样的数据模型
2.1) 理论基础
CAP理论
对于一个分布式系统来讲,不可能同时满足一致性、可用性、分区容错性,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)不能同时满 足,所以为了高度的可用性,只能牺牲一致性,以最终一致性取而代之
最终一致性
过程松,结果紧,最终结果必须保持一致性
2.2)分布式模型
分片
把一个数据库切分成多个部分放到不同的数据库节点中,从而缓解单一数据库的性能问题,数据库的各部分存放在不同的服务器上实现横向扩展
类型
水平切分
将同一个表中的不同数据拆分到不同的数据库中,水平切分适合表不多,但是表数据特别多的情况,可以根据ID或者Hash来分
垂直切分
将不同的数据分片存放在独立的节点上,每个节点只负责自身数据的读取与写入操作,适合业务之间耦合度非常低、相互影响很小、业务逻辑非常清晰的系统
复制
主从复制
由主节点接受更新请求操作,在事务操作完成后,在事务提交前或后讲操作通知其他从节点,从节点来处理所有的读请求
对等复制
节点间是对等的,可以通过多点提高事务的吞吐率
3)数据库分类
列存储
代表
HBase
Cassandra
Hypertable
特点
按列存储结构,方便存储结构化和半结构化数据,方便做数据压缩,对针对某一列或某几列的查询具有I/O优势
文档存储
代表
MongoDB
CouchDB
特点
用类似JSON的格式存储,存储的内容是文档类型的,便于对某些字段建立索引,实现关系型数据库的部分功能
key-value存储
代表
Berkeley DB
MemcacheDB
Redis
特点
可以通过key快速查询响应value,不必考虑value的存储格式
图数据库
代表
Neo4j
FlockDB
特点
图形关系的最佳存储,如果使用关系型数据库存储的话,性能低,而且设计复杂
相关文章推荐
- 大数据学习笔记之三十六 NewSQL相关知识
- 微软企业库5.0学习笔记(三十五)数据访问模块 DataSet以及数据库事务
- Java容器学习笔记(二) Set接口及其实现类的相关知识总结
- 黑马程序员之HTML学习笔记:HTML相关知识总结
- 【C#学习笔记3】C#面向对象相关知识2
- 黑马程序员--wpf学习笔记六----数据操作相关
- Selenium学习笔记之四:外部化相关测试数据
- 微软企业库5.0学习笔记(三十五)数据访问模块 DataSet以及数据库事务
- 黑马程序员之SQL学习笔记: 数据库相关知识 小总结
- 《Spring 3.x 企业应用开发实战》学习笔记 第三章 IoC容器概述 3.2 相关Java基础知识 类装载器 反射机制
- 【C#学习笔记2】C#面向对象相关知识
- Java nio 学习笔记(一) Buffer(缓冲区)与Channel(通道)的相关知识
- 基于ArcGIS10.0和Oracle10g的空间数据管理平台(C#开发)ArcGIS相关知识补充学习
- 黑马程序员之WinForm学习笔记: winform窗体控件相关知识
- Oralce学习笔记:查询语句 查看数据文件相关信息
- Java容器学习笔记(二) Set接口及其实现类的相关知识总结
- 微软企业库5.0学习笔记(三十五)数据访问模块 DataSet以及数据库事务
- Java nio 学习笔记(一) Buffer(缓冲区)与Channel(通道)的相关知识
- js基础知识相关学习笔记记录
- UML学习笔记---了解UML,UML相关知识,相关概念