这篇文章是关于如何比较三个NoSQL数据库,MongoDB,Cassandra和HBase。边肖觉得很实用,所以想分享给大家学习。希望大家看完这篇文章能有所收获。我不多说。让我们和边肖一起看看。
Hadoop已经获得了很多大数据应用的美誉,但事实是NoSQL数据库是一项部署越来越广泛、发展越来越广泛的技术。尽管选择Hadoop作为应用程序存储,但它相对简单明了。但是,使用什么样的NoSQL数据库值得考虑。毕竟,有100多个NoSQL数据库。
我们应该选择哪一个?
选择倾向
“任何像样的规模企业都会使用各种类型的数据存储技术来应对各种类型的数据。”马丁福勒认为,现实是你没有足够的精力去学习更多的存储技术。
幸运的是,它更容易选择,因为市场主要围绕三个NoSQL数据库:MongoDB、Cassandra(主要由DataStax开发,诞生于脸书)和HBase(与Hadoop密切相关,由同一社区开发)。
补充一下,我故意排除了Redis。与大数据存储相比,它主要用于在高速内存中缓存数据。
根据LinkedIn的451研究数据,MongoDB、Cassandra和HBase是市场上最具吸引力的:
这是领英的个人资料。我们认为它是一个数据存储引擎,通过收集工作、搜索等数据来了解数据库的普及程度。而Oracle、SQL Server和MySQL占据主导地位,MongoDB(第5)、Cassandra(第9)和HBase(第15)。
为了更好地解释为什么这三种数据库技术如此耀眼,我请每一位有代表性的人来确定它们成功的关键因素:MongoDB的产品总监Kelly Stirman数据税的首席福音传道者帕特里克麦克法丁;以及Cloudera的高级主管贾斯汀凯斯特林。
但是首先,我们需要理解为什么使用NoSQL。
00-1010我们生活在一个数据越来越丰富的世界,但是这些数据不能整齐地显示在关系数据库管理系统(RDBMS)的行和列中。移动、社交和云计算催生了大量数据。据估计,世界上90%的数据是在过去两年中创建的,80%的业务数据是非结构化的。更重要的是,非结构化数据的增长率是结构化数据的两倍。
随着世界的变化,数据管理的需求开始超出传统关系数据库的有效范围。最早关注这一问题解决方案的组织包括网络技术的先驱、政府机构和从事信息技术服务的公司。
目前,越来越多的各类公司希望使用类似的NoSQL和Hadoop作为替代品:通过NoSQL建立业务运营应用,通过Hadoop创建数据挖掘应用,帮助公司提供强大的业务数据研究。
00-1010在众多的NoSQL方案中,MongoDB的Stirman指出,MongoDB旨在提供一种适用于各种应用的平衡方法。它的功能接近于传统的关系数据库。MongoDB用户不仅可以利用其横向扩展机器云基础设施的优势,还可以支持不同类型的数据集存储,因为它可以轻松定义各种灵活的数据模型。
MongoDB通常是开发人员尝试的第一个NoSQL数据库,因为它很容易学习。蒙古数据库服务提供商蒙古实验室的首席执行官威尔舒尔曼说:
MongoDB的成功很大程度上归功于其数据结构存储的创新,这使得在我们的应用程序中定义数据模型变得更加容易和更具表现力。在一般的开发应用场景中,拥有与原数据库相同的基础数据模型大有裨益,一方面简化了应用开发的任务,另一方面消除了复杂的数据格式代码转换层。
当然,像任何其他技术一样,MongoDB也有它的优点和缺点。MongoDB是专门为OLTP(在线事务处理)模式设计的。如果你需要复杂的事务处理,这不是一个好的选择。然而,MongoDB的简单性使其成为一个优秀的存储。
(注意:MongoDB以文档的形式存储数据,不支持事务和表连接。因此,编写、理解和优化查询要容易得多。)
从010到1010的三个数据库中,至少有两个具有简单的特点:开发简单,操作容易。MongoDB之所以赢得人们的心,是因为开发和应用简单,而Cassandra之所以赢得人们的心,是因为其易于管理的规模。
DataStax的McFadin告诉我,用户倾向于使用Cassandra。
是因为特别在大规模集群下,增强一个关系型数据的性能、可靠性是非常困难的。一位前甲骨文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数据库比较,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/66430.html