NoSQL简单介绍

NoSQL

NoSQL解决大数据处理问题:

并行数据库:水平切分,分区查询

NoSQL数据库管理系统:非关系型模型,分布式,不支持ACID数据库设计范式

关系型数据库中的ACID:

Atomicity原子性,一个事物中所有操作都必须全部完成,要么全部不完成

Consistency一致性,事物在开始或结束时,数据库应该在一致状态

Isolation隔离性,事物将设定只有它自己操作数据库,彼此不知晓

Durability持久性:一旦事物完成,就不能返回

大数据分析处理:

MapReduce:映射成键值,分析在集合处理

CAP:任何分布式系统只能满足两种

Consistency:一致性

Availability:可用性

Partition tolerance:分区容错性

BASE:不同ACID模型,牺牲数据一致性,获得可用性或可靠性

Basically Available:基本可用性

Soft state:软状态 状态可以有一段时间不同步,异步

Eventually consistent:最终一致性,最终一致,不是实时一致

因果一致性

会话一致性

读 自己写一致性

单调读一致性

时间轴一致性

ACID对比BASE

ACID:强制一致性隔离性,采用悲观保守方法,难以变化

BASE:弱一致性,可用性优先,采用乐观的方法,适应变化,更简单,更快

数据一致性的实现技术:

NRW,2PC,Paxos,Vector Clock

NoSQL特点

简单数据模型(KEY,VALUE)结构

元数据和数据分离

弱一致性

高吞吐量

较高水平扩展能力

低端硬件群集

NoSQL缺点

功能太单一,没有统一查询模型

不支持ACID设计范式(对事物要求高的不要使用)

NewSQL

继承关系型数据库,NoSQL

比如:Clustrix,GenieDB,ScaleBase,NimbusDB,Drizzle

适用云环境都归类到NewSQL

元数据管理系统:DBaas

数据存储模型:

详键:http://www.nosql-database.org

  • 列式存储模型:hadoop/Hbase,Hypertable

  • 文档存储模型:mongoDB ElasticSearch

  • 键值存储模型:redis,Berkeyley DB

  • 图形数据模型:Noe4j,Sparksee

  • 多维数据模型:ArangoDB,OrientDB

  • 对象数据库:Versant,db4o

  • 网格/云数据解决方法:GridGain

列式存储模型:

应用场景:在分布式文件系统之上支持随机读写分布式数据存储

典型产品:Hbase ,Hypertable,Cassandra

数据模型:以列为中心进行存储,将同一列数据存储在一起

优点:快速查询,高可扩展性强,易于实现分布式扩展

文档存储模型:

应用场景:非强事务需求的web应用

典型产品:mongoDB,ElasticSearch(通常存储日志),CouchDB,CounchDB Server

数据模型:键值模型,存储为文档

优点:数据模型无须实现定义

键值存储模型:

应用场景:用于内容缓冲,用于大量并行数据访问的高负载场景

典型产品:Redis,dynamoDB,Riakn,Memcachedb(不是memcached)

数据模型:基于哈希表实现的key-value模型

优点:查询/写入迅速,数据没有结构

图式存储模型:

应用场景:社交网络,推荐系统,管系统等,如位置定位

典型产品:Neo4j,infinite graph

数据模型:图式结构

优点:适用图式计算场景

看完了?赏个鸡腿钱,谢谢老板!