大交易数据(企业) 大交互数据(SNS)
nosql需求背景
高并发读写
海量数据的高效存储和访问
高扩展高可用
大数据特征
1,数据量巨大,2,数据多样性,3,数据实时性
高扩展性和高可用性
关系数据库存在的问题:
1,面对高并发的读写需求,数据库压力巨大,硬盘IO无法承受
2,面对海量的数据,数据库存储记录数有限,sql查询效率低下
3,横向扩展艰难,无法通过快速增加服务器节点,实现系统的升级和维护造成系统不可用
Nosql优势
1,易扩展(数据间无关系)
2,灵活的数据模型(自定义数据格式)
3,高可用(通过复制模型实现高可用性)
4,高性能(得益于数据无关系性,数据库结构简单)
CAP:
一致性(Consistency)
可用性(availability)
分区容忍性(partition toerance)
CAP定理
在分布式数据库系统中,这三个要素最多只能同时出现2点,不可能三者兼容
分区容忍性是基本要求,对于大多数web应用,牺牲一致性而换取高可用性,是目前分布式数据库产品的方向。
Nosql存在的不足
1,弱事务性
2,弱表关联
3,非主流
主流nosql
1,cassandra(64%)
2,mongodb(20%)
典型nosql对比:
cassandra:java apache custom,binary,thrift 写入比查询多,写入比查询速度快 银行金融等实时性高 最好的bigtable和dynamo||
hbase java apache http/rest/thrift 最好的map、reduce模型操作 日志分析系统 支持数十亿的列操作||
MongoDb c++ agpl custom、binary、bson 动态查询,索引比map、reduce方式更实时 任何msql适合用且数据结构无法预先定义的场合 类sql应用场景(查询,索引)||