1.超过100种的NoSQL 数据库,该如何选择?
目前市场主要围绕在三个NoSQL数据库上:MongoDB,Cassandra(主要由DataStax开发的,诞生于Facebook),和HBase的(和Hadoop紧密关联在一起,也被相同社区开发出来)。
补充一点,故意排除Redis,主要是因为相对于大数据存储,它主要用于高速内存缓存数据应用。
上图来自于 DB-Engines 各种数据库的流行度排名(https://db-engines.com/en/ranking_trend),可以看到前面几年基本上都是关系数据库 Oracle、MySQL、SQL Server 以及 PostgreSQL 的天下。MongoDB 排名第五名, Cassandra 排名十名,而 HBase 排名十七名。
2.MongoDB:源于开发人员,为开发人员服务
MongoDB 通常是开发人员第一个尝试的NoSQL数据库,因为它是很容易学习。(MongoDB以文档的形式存储数据,不支持事务和表连接。因此查询的编写、理解和优化都容易得多。)
MongoDB是专门为OLTP(On-Line Transaction Processing,联机事务处理系统)模式。如果您需要复杂的事务处理,它不是一个好的选择。然而,MongoDB的简单性使其成为一个优秀的存储。
3.Cassandra:规模化安全运行
MongoDB赢得人心的原因是简单的开发应用,Cassandra赢得人心是因为易于管理的规模。
Cassandra在机器拓展部署上,表现特别出色。Cassandra自带的备份机制,保证各个数据中心的数据安全。至于增加容量到集群,“你只需启动一台新机器,并告诉Cassandra那里的新节点,然后它完成其他剩下的事情。
4.HBase:Hadoop的知心伙伴
HBase,像Cassandra一样是个通过key-value面向列存储的服务。HBase提供了一个基于记录的存储层,能够快速随机读取和写入数据,正好弥补了Hadoop的缺陷,Hadoop侧重系统吞吐量,而牺牲I / O读取效率为代价。
HBase可以利用任何数量服务器的磁盘、内存和CPU资源,同时拥有极佳的扩展功能,如自动分片。当系统负载和性能要求不断增加,HBase的可通过简单增加服务器节点的方式无限拓展。
由于它与Hadoop的生态系统紧密集成,对于用户和应用程序来说,数据是容易获取的,可以通过SQL的方式查询(使用Cloudera的Impala,Phoenix,或Hive),甚至自由文本搜索(使用Cloudera Search)
参考文档: