与关系型数据库RDBMS的大厂商垄断不同,NoSQL在发展之初就可谓是百家争鸣、百花齐放,无论目前如日中天的MongoDB,还是刚刚发布最新版本 的Redis;无论是面向文本的CouchDB,还是基于KV的Cassandra,都有着各自的特点和应用场景。而作为传统SQL数据库的良好补 充,DBA有必要了解这些主流NoSQL数据库的各自特点。在本文中,我们就将对比一下主流NoSQL数据库,包括了Cassandra、 Mongodb、CouchDB、Redis、Riak以及HBase。
基本特性:
各自特点与应用场景:
Cassandra
分布式与复制的权衡
根据列和键范围进行查询
BigTable类似的功能:列,列族
写比读快很多
Map/reduce Apache Hadoop
Java语言在设置上会有一定复杂度
最佳适用:写操作较多,读比较少的时候。如果你的系统都是基于Java的时候。
应用场景:银行,金融行业。数据分析。
MongoDB
主从复制
查询利用javascript表达式
服务器端运行javascript函数
比CouchDB更容易就地升级
内置Sharding
数据存储使用的是内存映射文件
数据库崩溃后需要对表进行修复
持久性更好
最佳适用:如果你需要动态的查询,如果你更偏向与定义索引而非 map/reduce,如果你针对大数据库想要更好的性能,如果你想使用CouchDB而数据变化太快,磁盘不够用的话,可以使用MongoDB。
应用场景:一言以蔽之,MySQL或PostgreSQL的替代品。
CouchDB
双向复制
连续或ad-hoc
冲突检测
主主复制(master-master replication)
多版本并发控制,写操作不会阻塞读取
通用的技术文档
只崩溃设计Crash-only
需要经常压缩
视图:嵌入式map/reduce
格式化视图:lists & shows
服务器端文档验证可行
身份验证可行
通过_changes实时更新
附件处理
CouchApps(独立js应用)
包括jQuery库
最佳适用:对于数据变化不太频繁的业务,运行有预先定义的查询。此外对于版本控制有高要求的业务同样适用。
应用场景:CRM、CMS系统。主主复制是非常有趣的功能特性,它令多站点部署变得更加容易。
Riak
分布式与复制的权衡
post-commit 和pre-commit hooks
安全性验证
内置的全文检索
Javascript或Erlang Map/reduce
开源 与 企业 两个版本
最佳适用:如果你想要Cassandra或Dynamo类似的功能,但不想太复杂。如果你需要非常好的单点扩展性、可用性和容错功能可以使用Riak。
应用场景:销售点数据采集。工厂控制系统。需要零停机时间的场景。
Redis
内存数据库
2.0版本之后可以部署到硬盘上
主从复制
简单的Key-Value
操作符较为复杂,如ZREVRANGEBYSCORE
INCR & co (有利于速率限制和统计)
有集合(union/diff/inter)
有列表(a queue; blocking pop)
有散列(多字段对象)
NoSQL中唯一处理交易的数据库
Value可以设定过期
分类集合(有利于范围查询)
针对数据变化的Pub/Sub和WATCH
最佳适用:在数据库大小可预见的前提下,适用于数据变化速度快的应用。
应用场景:股价系统,数据分析,实时数据采集以及实时通信场景。
HBase
分布式与复制的权衡
模仿BigTable
Map/reduce Hadoop
利用服务器端扫描进行查询预测叠加并获取过滤
优化的实时查询
高性能Thrift网关
HTTP支持XML、Protobuf和二进制
Cascading、hive、pig source和sink模块
基于Jruby的shell
无单点故障
类似MySQL的随机访问性能
最佳适用:如果你喜欢BigTable,如果你需要随即、实时的读写大数据(Big Data),可以使用HBase。
应用场景:Facebook网站邮件数据库等。
相关推荐
主要介绍了8种主流NoSQL数据库系统特性对比和最佳应用场景,对选择一个NoSQL数据库来说是一个不错的参考文章,需要的朋友可以参考下
在TechTarget数据库之前的报道中,我们也对NoSQL数据库的应用场景做了详细的介绍。NoSQL 不像传统的关系型数据库,其种类繁多,且各有各的优势和缺点,对于DBA来说如何区分彼此的不同是一件比较头痛的工作。 在...
数据库课程是计算机科学与信息技术...4. **数据库管理系统(DBMS)**:探索主流DBMS如MySQL、PostgreSQL、Oracle、Microsoft SQL Server、MongoDB等,对比分析各自的特性和应用场景,提供安装、配置、维护、备份与恢复
主流开源NoSQL及分布式存储的应用与思考.pdf 腾讯在线交易平台统一数据层高一致性解决方案.pdf NoSQL一致性实践:我对CAP的一点认识.pdf MongoDB at Qihoo 360.pdf MySQL Cluster实战初探 .pdf SAP HANA深度剖析.pdf...
9.主流开源NoSQL及分布式存储的应用与思考.pdf 10.腾讯在线交易平台统一数据层高一致性解决方案.pdf 11.NoSQL一致性实践:我对CAP的一点认识.pdf 12.MongoDB at Qihoo 360.pdf 13.MySQL Cluster实战初探 .pdf 14.SAP...
本文将介绍关系型数据库和非关系型数据库的概念、主流数据库管理系统,并深入探讨它们的优缺点以及适用场景。同时,我们还将从数据模型、数据结构、数据操作和数据存储方式等方面对比这两种数据库类型的差别。
主流开源NoSQL及分布式存储的应用与思考.pdf 腾讯在线交易平台统一数据层高一致性解决方案.pdf NoSQL一致性实践:我对CAP的一点认识.pdf MongoDB at Qihoo 360.pdf MySQL Cluster实战初探 .pdf SAP HANA深度剖析.pdf...
3.6.1 SQL和NoSQL数据库的对比 113 3.6.2 RDS数据库原理 114 3.6.3 RDS的使用 115 3.7 内容推送服务CloudFront 115 3.7.1 内容推送网络CDN 115 3.7.2 云内容推送CloudFront 117 3.8 其他Amazon云计算服务 119 3.8.1 ...
主流开源NoSQL及分布式存储的应用与思考.pdf 腾讯在线交易平台统一数据层高一致性解决方案.pdf NoSQL一致性实践:我对CAP的一点认识.pdf MongoDB at Qihoo 360.pdf MySQL Cluster实战初探 .pdf SAP HANA深度剖析.pdf...
常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-...
常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-...
分布式架构 漫谈分布式架构 ... Netty产生的背景及应用场景分析 基于Netty实现的高性能IM聊天 基于Netty实现Dubbo多协议通信支持 Netty无锁化串行设计及高并发处理机制 手写实现多协议RPC框架
datasphere-integration 数据集成...可在SQL数据库、NoSQL数据库和Hadoop大数据平台之间实时流转数据。 分布式集群部署,扩展性高,处理速度快,适合于实时交换共享场景。 可数据容错,平台故障后,可保持数据完整性和