- 浏览: 214023 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
yugouai:
下载不了啊。。。
如何获取hive建表语句 -
help:
[root@hadoop-namenode 1 5 /usr/ ...
Sqoop -
085567:
lvshuding 写道请问,sqoop 安装时不用配置什么吗 ...
Sqoop -
085567:
lvshuding 写道请问,导入数据时,kv1.txt的文件 ...
hive与hbase整合 -
lvshuding:
请问,sqoop 安装时不用配置什么吗?
Sqoop
Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase比较
- 博客分类:
- nosql
原文:
http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis
Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase comparison
While SQL databases are insanely useful tools, their tyranny of ~15 years is coming to an end. And it was just time: I can’t even count the things that were forced into relational databases, but never really fitted them.
But the differences between "NoSQL" databases are much bigger than it ever was between one SQL database and another. This means that it is a bigger responsibility on software architects to choose the appropriate one for a project right at the beginning.
In this light, here is a comparison of Cassandra, Mongodb, CouchDB, Redis, Riak and HBase:
CouchDB
- Written in: Erlang
- Main point: DB consistency, ease of use
- License: Apache
- Protocol: HTTP/REST
- Bi-directional (!) replication,
- continuous or ad-hoc,
- with conflict detection,
- thus, master-master replication. (!)
- MVCC – write operations do not block reads
- Previous versions of documents are available
- Crash-only (reliable) design
- Needs compacting from time to time
- Views: embedded map/reduce
- Formatting views: lists & shows
- Server-side document validation possible
- Authentication possible
- Real-time updates via _changes (!)
- Attachment handling
- thus, CouchApps (standalone js apps)
- jQuery library included
Best used: For accumulating, occasionally changing data, on which pre-defined queries are to be run. Places where versioning is important.
For example: CRM, CMS systems. Master-master replication is an especially interesting feature, allowing easy multi-site deployments.
Redis
- Written in: C/C++
- Main point: Blazing fast
- License: BSD
- Protocol: Telnet-like
- Disk-backed in-memory database,
- but since 2.0, it can swap to disk.
- Master-slave replication
- Simple keys and values,
- but complex operations like ZREVRANGEBYSCORE
- INCR & co (good for rate limiting or statistics)
- Has sets (also union/diff/inter)
- Has lists (also a queue; blocking pop)
- Has hashes (objects of multiple fields)
- Of all these databases, only Redis does transactions (!)
- Values can be set to expire (as in a cache)
- Sorted sets (high score table, good for range queries)
- Pub/Sub and WATCH on data changes (!)
Best used: For rapidly changing data with a foreseeable database size (should fit mostly in memory).
For example: Stock prices. Analytics. Real-time data collection. Real-time communication.
MongoDB
- Written in: C++
- Main point: Retains some friendly properties of SQL. (Query, index)
- License: AGPL (Drivers: Apache)
- Protocol: Custom, binary (BSON)
- Master/slave replication
- Queries are javascript expressions
- Run arbitrary javascript functions server-side
- Better update-in-place than CouchDB
- Sharding built-in
- Uses memory mapped files for data storage
- Performance over features
- After crash, it needs to repair tables
Best used: If you need dynamic queries. If you prefer to define indexes, not map/reduce functions. If you need good performance on a big DB. If you wanted CouchDB, but your data changes too much, filling up disks.
For example: For all things that you would do with MySQL or PostgreSQL, but having predefined columns really holds you back.
Cassandra
- Written in: Java
- Main point: Best of BigTable and Dynamo
- License: Apache
- Protocol: Custom, binary (Thrift)
- Tunable trade-offs for distribution and replication (N, R, W)
- Querying by column, range of keys
- BigTable-like features: columns, column families
- Writes are much faster than reads (!)
- Map/reduce possible with Apache Hadoop
- I admit being a bit biased against it, because of the bloat and complexity it has partly because of Java (configuration, seeing exceptions, etc)
Best used: When you write more than you read (logging). If every component of the system must be in Java. ("No one gets fired for choosing Apache’s stuff.")
For example: Banking, financial industry (though not necessarily for financial transactions, but these industries are much bigger than that.) Writes are faster than reads, so one natural niche is real time data analysis.
Riak
- Written in: Erlang & C, some Javascript
- Main point: Fault tolerance
- License: Apache
- Protocol: HTTP/REST
- Tunable trade-offs for distribution and replication (N, R, W)
- Pre- and post-commit hooks,
- for validation and security.
- Built-in full-text search
- Map/reduce in javascript or Erlang
- Comes in "open source" and "enterprise" editions
Best used: If you want something Cassandra-like (Dynamo-like), but no way you’re gonna deal with the bloat and complexity. If you need very good single-site scalability, availability and fault-tolerance, but you’re ready to pay for multi-site replication.
For example: Point-of-sales data collection. Factory control systems. Places where even seconds of downtime hurt.
HBase
(With the help of ghshephard)
- Written in: Java
- Main point: Billions of rows X millions of columns
- License: Apache
- Protocol: HTTP/REST (also Thrift)
- Modeled after BigTable
- Map/reduce with Hadoop
- Query predicate push down via server side scan and get filters
- Optimizations for real time queries
- A high performance Thrift gateway
- HTTP supports XML, Protobuf, and binary
- Cascading, hive, and pig source and sink modules
- Jruby-based (JIRB) shell
- No single point of failure
- Rolling restart for configuration changes and minor upgrades
- Random access performance is like MySQL
Best used: If you’re in love with BigTable. And when you need random, realtime read/write access to your Big Data.
For example: Facebook Messaging Database (more general example coming soon)
Of course, all systems have much more features than what’s listed here. I only wanted to list the key points that I base my decisions on. Also, development of all are very fast, so things are bound to change. I’ll do my best to keep this list updated.
– Kristof
CouchDB
语言 Erlang
特征 数据库一致性,易于使用
适合 积累性的、较少改变的数据。或者是需要文档的多版本支持(?这句话翻译不好 Places where versioning is important)
场合 CRM CMS
Redis
语言 c/c++
特征 非常快
适合 总数据集快速变化且总量可预测
场合 股票价格、实时分析、实时数据收集、实时通信
MongoDB
语言 c++
特征 与sql风格类似(查询/索引)
适合 动态查询; 索引比map/reduce方式更合适时; 需要CouchDB但数据变动更多时
场合 任何用Mysql/PostgreSQL,但是无法忍受预先定义好所有列的时候
Cassandra
语言 java
适合 写入比查询多
略 (我个人也觉得不靠谱)
Riak
语言 c++/erlang javascript
据说有开源版和企业版
特征 容错
适合 需要Cassandra式的扩展性,但是不想惹麻烦
场合 销售数据收集 … 反正坏一秒就很麻烦的场合
hbase
语言 java
类似 bigtable
适用 随机读取
发表评论
-
hbase-default.xml file seems to be for and old version 异常
2011-09-13 17:53 2596在应用java调用hbase的时候报异常: jav ... -
HBase加载大数据
2011-09-13 16:30 1090一、概述 HBase有很多种方法将数据加载到表中,最简单直接 ... -
谈正确理解 CAP 理论
2011-07-02 22:21 957转自:http://www.douban.com/group/ ... -
nosql fans 的几个博客和网站
2011-06-06 23:31 1275http://www.nosqlnotes.net/ ... -
the little mongodb book
2011-06-06 23:08 885一本新的mongodb操作手册: -
mongoDB在craigslist的应用及mysql实时导入mongodb工具
2011-05-19 22:59 1151http://www.10gen.com/video/mong ... -
反NoSQL的呼声(转)
2011-04-25 15:24 891CAP的崩溃 CAP猜想 可是NoSQL的基石。 ... -
nosql 资源(转)
2011-04-25 15:08 1021NoSQL 是非关系型数据存储的广义定义。它打破了长 ... -
论文:nosql database
2011-04-24 16:16 901很长地论文,写地不错。 -
图形化理解 HBase 数据写操作、压缩操作过程
2011-04-24 15:19 907HBase 写数据的过程是:先写到内存中(memstore), ... -
HFile存储格式
2011-03-21 19:26 804HBase中的所有数据文件都存储在Hadoop HDFS文 ... -
NoSQL数据库探讨之一 - 为什么要用非关系数据库?
2011-03-21 19:10 982随着互联网web2.0网站的 ... -
NoSQL:Cassandra和MongoDB最受欢迎
2011-03-21 18:48 1252转自:http://cloud.csdn.net/ ... -
hbase条件查询
2011-03-18 17:25 2596一、环境 HBase版本hb ... -
HBase加载大数据
2011-03-18 17:15 963一、概述 HBase有很多种方法将数据加载到表中,最简单 ... -
MongoDB资料-MongoDB.The.Definitive.Guide
2011-03-04 09:44 911MongoDB资料-MongoDB.The.Definitiv ... -
cassandra:The.Definitive.Guide
2011-03-02 13:15 865cassandra的书籍,可以看看。 -
HBase的安装、配置、管理与编程
2011-01-10 11:39 1181环境准备需要环境:PC-1 Suse Linux 9 10. ... -
Hbase配置和开发中的几个注意事项
2011-01-10 11:23 1145在配置Hadoop和Hbase的过程中,虽然官方网站上有很多丰 ... -
hbase的org.apache.hadoop.hbase.client.RetriesExhaustedException:错误记录
2010-07-16 20:00 3669今天启动hbase后,所有hbase shell命令会出现or ...
相关推荐
官方给出的三种NoSQL数据库:SequoiaDB&Cassandra&MongoDB性能对比测试报告;值得参考;
NULL 博文链接:https://13146489.iteye.com/blog/1123018
非关系数据库(经常被称为NoSQL)的特点是弹性和可伸缩性。另外,它们可以存储大数据并与云计算系统协同工作。这些因素导致非关系数据库非常流行。在2013年,NoSQL数据库的种类达到了150多个,并且一直在增长,多种...
Cassandra与HBase系统架构比对
针对这种情况,这里对 Cassandra、 Mongodb、CouchDB、Redis、 Riak、 Membase、Neo4j和HBase进行了比较: (编注1:NoSQL:是一项全新的数据库革命性运动,NoSQL的拥护者们提倡运用非关系型的数据存储。现今的...
各种流行的分布式应用技术资料合集(涵盖Hadoop Cassandra HBase NoSQL)
benchmark_hbase_cassandra 使用 YCSB 对 HBase 和 Cassandra 进行基准测试的脚本。 数据库 - HBase 和 Cassandra benchmark_report.pdf 该文件包含使用 YCSB 的 HBase 和 Cassandra 基准测试结果的报告和观察结果。...
其主要功能比Dynomite(分布式的Key-Value存储系统)更丰富,但支持度却不如文档存储MongoDB(介于关系数据库和非关系数据库之间的开源产品,是非关系数据库当中功能最丰富,最像关系数据库的。支持的数据结构非常...
nosqlJavaLib NoSQL Java库,用于使用同一接口对Cassandra和MongoDB进行基本操作,例如扫描,项目和文件管理器。
一个封装了 hbase、cassandra 和 mongodb 的 java 地图实现。 允许人们通过本机地图界面在这些 NoSQL 数据库中缓存对象。 它使 NoSQL 数据库的迁移变得容易。 这个想法也是为了让 Hazelcast 赚钱。 先决条件 您需要...
Cassandra与HBase系统架构比对.zip
云计算 ISAS PAAS SAAS 云计算好比大货轮,docker就是集装箱 Git docker: 鲸鱼背上的集装箱,彼此之间互相不影响,各自运行在各自的...Cassandra、 Mongodb、 CouchDB、 Redis、 Riak、 Membase、 Neo4j、 HBase redis
The HBase design patterns apply equally well to Cassandra, MongoDB, and so on. In Detail With the increasing use of NoSQL in general and HBase in particular, knowing how to build practical ...
近期, 知名独立基准测评机构bankmark,针对SequoiaDB、MongoDB以及Cassandra三款NoSQL数据库产品做了性能对比测试。在所有的测试中,三款产品的表现各有千秋。 报道详情:http://code.csdn.net/news/2823026
TutorialsPoint SpringJDBC JSoup CouchDB Cassandra JSF Kotlin 教程
Yahoo 专门用于主流的 nosql 性能测试,java 编写,内集成 hbase,mongodb,cassandra,voldemort,redis。使用时注意需要将相应的数据库驱动复制到对应的数据库 lib 下面。
可视化MongoDB数据库管理工具,NoSQL Manager for MongoDB,破解版,解压就可以用。
其主要功能比Dynomite(分布式的Key-Value存储系统)更丰富,但支持度却不如文档存储MongoDB(介于关系数据库和非关系数据库之间的开源产品,是非关系数据库当中功能最丰富,最像关系数据库的。支持的数据结构非常...