怎么进行MongoDB和Cassandra以及HBase三种NoSQL数据库比较( 二 )


是因为特别在大规模集群下,增强一个关系型数据的性能、可靠性是非常困难的 。一位前甲骨文DBA,McFadin是兴高采烈地发现,“复制和可扩放性是基础”,Cassandra 特点是从一开始设计就解决这个问题 。
在RDBMS中的世界,数据库功能,拓展和复制对很多开发者用户来说,是一个难题 。这个问题在过往的企业规模小的时候,不是一个大问题 。而在今天,它很迅速地成为大问题 。
我从McFadin和其他人那里获知,Cassandra在机器拓展部署上,表现特别出色 。Cassandra自带的备份机制,保证各个数据中心的数据安全 。至于增加容量到集群,“你只需启动一台新机器,并告诉Cassandra那里的新节点,”McFadin说,“然后,它完成其他剩下的事情 。”
优秀的可拓展性,加上出色的写入和可观的查询性能,加起来成为Cassandra高性能的核心 。
NoSQL的一篇文章认为Cassandra在集群规模管理方面非常出色,但它需要一个博士学位才能上手 。事实并非如此,McFadin坚持认为:
在复制、读取和写入是故意简单 。你可以在几个小时内学会Cassandra的核心功能 。在部署这项新技术的时候,为给开发者带来很多的信心,因为比较少引入“黑盒子”内的技术细节和复杂的故障模式原理 。
这意味着主要的开发成本,是对Cassandra数据模型的理解,以及如何结合您的应用程序 。鉴于Cassandra的CQL查询语言(类似于SQL,实际上不是SQL),McFadin说,学习这个也不困难 。
更重要的是,他告诉我,“Cassandra回报给你的是,在一个数据库中:没有戏剧性的场景(故障)出现 。这就是用户喜欢使用Cassandra的原因 。”
HBase:Hadoop的知心伙伴HBase,像Cassandra一样是个通过key-value面向列存储的服务 。因为它和Hadoop有着“共同血统”,被广泛使用 。事实上,正如Cloudera的Kestelyn所说的那样,“HBase提供了一个基于记录的存储层,能够快速随机读取和写入数据,正好弥补了Hadoop的缺陷,Hadoop侧重系统吞吐量,而牺牲I / O读取效率为代价 。”
Kestelyn接着说:
更改有效录入到内存中,以达到最大的访问量,同时将数据保存到HDFS 。这种设计使基于Hadoop的EDH(enterprise data hub,企业数据中心)服务,能够实时完成随机读写存储数据,但仍拥有HDFS的高容错性和耐用性 。
Hadoop的亲和力,不是HBase数据库中的人气排名不断上升的唯一原因 。类似Cassandra,HBase是Google的Bigtable的开源实现转化成的数据库,天然被设计为高可扩展性 。
Hbase可以利用任何数量服务器的磁盘、内存和CPU资源,同时拥有极佳的扩展功能,如自动分片 。当系统负载和性能要求不断增加,HBase的可通过简单增加服务器节点的方式无限拓展 。HBase从底层设计上保证,在确保数据一致性的同时,提供最佳性能 。
但规模不是它的唯一用途 。Kestelyn指出,“由于它与Hadoop的生态系统紧密集成,对于用户和应用程序来说,数据是容易获取的,可以通过SQL的方式查询(使用Cloudera的Impala,Phoenix,或Hive),甚至自由文本搜索(使用Cloudera Search) 。“因此,HBase为开发人员提供了一种方法,利用现有通用的SQL语言,来建立在一个更成熟的分布式数据库 。
每种数据库技术都有自己的长处和不足,但这里评论的三种数据库,在大数据技术领域,占据了重要的位置 。虽然未来可能还有一种全新的NoSQL数据库技术会挑战它们前三的位置,但目前的现实是,许多开发人员以及一批强大的成熟企业已经做出了它们的选择:MongoDB、Cassandra 和 HBase 。
【怎么进行MongoDB和Cassandra以及HBase三种NoSQL数据库比较】

推荐阅读