`

对比主流NoSQL数据库特性与应用场景

 
阅读更多

与关系型数据库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网站邮件数据库等。

  • 大小: 94.6 KB
分享到:
评论

相关推荐

    8种主流NoSQL数据库系统特性对比和最佳应用场景

    主要介绍了8种主流NoSQL数据库系统特性对比和最佳应用场景,对选择一个NoSQL数据库来说是一个不错的参考文章,需要的朋友可以参考下

    走近NoSQL数据库的四大家族

    在TechTarget数据库之前的报道中,我们也对NoSQL数据库的应用场景做了详细的介绍。NoSQL 不像传统的关系型数据库,其种类繁多,且各有各的优势和缺点,对于DBA来说如何区分彼此的不同是一件比较头痛的工作。  在...

    数据库的概要介绍与分析

    数据库课程是计算机科学与信息技术...4. **数据库管理系统(DBMS)**:探索主流DBMS如MySQL、PostgreSQL、Oracle、Microsoft SQL Server、MongoDB等,对比分析各自的特性和应用场景,提供安装、配置、维护、备份与恢复

    2013中国数据库大会ppt(1)

    主流开源NoSQL及分布式存储的应用与思考.pdf 腾讯在线交易平台统一数据层高一致性解决方案.pdf NoSQL一致性实践:我对CAP的一点认识.pdf MongoDB at Qihoo 360.pdf MySQL Cluster实战初探 .pdf SAP HANA深度剖析.pdf...

    2013年中国数据库大会PPT第一部分

    9.主流开源NoSQL及分布式存储的应用与思考.pdf 10.腾讯在线交易平台统一数据层高一致性解决方案.pdf 11.NoSQL一致性实践:我对CAP的一点认识.pdf 12.MongoDB at Qihoo 360.pdf 13.MySQL Cluster实战初探 .pdf 14.SAP...

    计算机课程(数据库)-关系型数据库 vs. 非关系型数据库

    本文将介绍关系型数据库和非关系型数据库的概念、主流数据库管理系统,并深入探讨它们的优缺点以及适用场景。同时,我们还将从数据模型、数据结构、数据操作和数据存储方式等方面对比这两种数据库类型的差别。

    2013中国数据库大会ppt(3)

    主流开源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 ...

    2013中国数据大会ppt(2)

    主流开源NoSQL及分布式存储的应用与思考.pdf 腾讯在线交易平台统一数据层高一致性解决方案.pdf NoSQL一致性实践:我对CAP的一点认识.pdf MongoDB at Qihoo 360.pdf MySQL Cluster实战初探 .pdf SAP HANA深度剖析.pdf...

    停车场系统源码,新能源充电桩系统,停车场小程序,智能停车,Parking system.zip

    常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-...

    停车场系统源码,停车场小程序,智能停车,Parking system.zip

    常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-...

    Java思维导图xmind文件+导出图片

    分布式架构 漫谈分布式架构 ... Netty产生的背景及应用场景分析 基于Netty实现的高性能IM聊天 基于Netty实现Dubbo多协议通信支持 Netty无锁化串行设计及高并发处理机制 手写实现多协议RPC框架

    datasphere-integration:以数据为中心的集成平台

    datasphere-integration 数据集成...可在SQL数据库、NoSQL数据库和Hadoop大数据平台之间实时流转数据。 分布式集群部署,扩展性高,处理速度快,适合于实时交换共享场景。 可数据容错,平台故障后,可保持数据完整性和

Global site tag (gtag.js) - Google Analytics