MongoDB和Cassandra都属于NoSQL数据库系列,它们也恰好都是开源,但是,它们的相似之处仅此而已。
MongoDB和Cassandra之间的相似之处
在深入探讨MongoDB和Cassandra的不同之处之前,让我们先看看它们的相似之处。
显然,它们都是数据库。更重要的是,它们都是NoSQL数据库。NoSQL是一种数据库架构类型,其中数据主要以相对非结构化的方式存储。与更传统的SQL式数据库相比,NoSQL可以更有效地存储大量非结构化数据,企业在大数据操作中通常会涉及非结构化数据。
MongoDB和Cassandra也都是开源数据库,尽管现在也有商业部署可用。但即使在这方面,它们也不尽相同,MongoDB由GNU Affero General Public License 3.0授权,而Cassandra由Apache License 2.0授权。
这两个数据库都已经存在了大约十年。Cassandra于2008年首次亮相,MongoDB则于2009年推出。从这方面来看,与20世纪90年代中期出现的MySQL等数据库相比,它们算是新型数据库。
最后,这两个数据库都支持三大操作系统:Windows、Linux和macOS。不过,Cassandra也可在基于Berkeley Software Distribution的操作系统上运行。
MongoDB与Cassandra:主要区别
然而,在大多数其他重要方面,MongoDB和Cassandra各有各的不同。
高可用性策略
MongoDB和Cassandra各自的数据可用性策略可能是它们之间最大的不同。
在Cassandra部署中,你可以设置多个主节点。如果一个或多个主节点发生故障,只要至少有一个主节点仍然存在,那你的数据库仍然将保持可用状态。这种高度分布式和冗余的模型使得在Cassandra中很容易实现高可用性(HA),当然,前提是你可以使用备用基础架构来设置多个主节点。
另一方面,MongoDB也没有忽略高可用性的问题,但其策略是基于自动故障转移的想法。你只能在MongoDB集群中设置一个主节点。如果主站发生故障,从站节点将自动转变为新的主站点。这确保了连续性,但这不会立即发生,通常需要将近一分钟。
你是否可以接受一分钟的数据存储中断,可能取决于你正在尝试做的事情。但是,无论你怎么对比,Cassandra都比MongoDB更具弹性和高可用性。
写入速度
MongoDB对单个主节点的限制也影响着数据写入数据库的速度。数据写入必须记录在主服务器上,并且由于MongoDB集群只有一个主服务器,因此它向数据库写入新信息的能力受到该单个主节点容量的严格限制。
而通过Cassandra,每个主节点可以并行接受不同的写入。因此,你拥有的主节点越多,你可以一次写入的数据就越多。如果你需要写很多数据,你应该选择Cassandra。
数据结构
虽然这两个数据库都属于NoSQL系列,但NoSQL是一个广泛的类别。当你了解深入了解时,你会发现,NoSQL数据库架构可能会有很大差异,MongoDB和Cassandra也是如此。
与Cassandra相比,MongoDB提供了更加非结构化的架构。MongoDB使你可以定义对象,这些对象基本上可以包含你想要的任何属性。此外,你基本上可以任何方式在层级结构组织对象。
相比之下,Cassandra提供了一种类似于桌面的存储模型,它更像传统的SQL风格数据库,不过,Cassandra并不像传统数据库那样严格。
查询语言
除了从数据结构角度更类似于SQL风格的数据库外,Cassandra的查询语言(称为CQL)也非常类似于传统数据库的查询语言。
CQL和SQL并不完全相同,但通常,在SQL上运行的查询可在CQL上运行。如果你的数据分析师已经熟悉SQL,那他/她也会很快学会CQL。
MongoDB有自己的查询界面,它基本上是JSON格式,你可以很容易地学习它。但这不是你已经熟悉的事情。
MongoDB与Cassandra:使用案例
那么,什么时候MongoDB是比Cassandra更好的解决方案,或者反过来呢?
一般来说,MongoDB最适合具有大量高度非结构化数据的工作负载。如果对于你将使用的数据的规模和类型,你并不了解或者具有最小的预测能力,那么,MongoDB的灵活数据结构将比Cassandra更适合你。
同时,若要有效地使用MongoDB,你必须能够应对主节点出现故障而造成停机的情况,以及有限的写入速度。同时,不要忘记,你还必须学习一种新的查询语言。
另一方面,Cassandra最适合SQL式数据类型的用例。如果你需要非常快的写入速度,Cassandra也能很好地工作。如果新查询语言的学习曲线吓倒了你,你还可从CQL和SQL之间的相似性中受益。
简而言之,如果你想要一个与MySQL类似的数据库,而又希望提供更多的灵活性和可扩展性,请选择Cassandra。如果你需要更高程度的灵活性并且愿意学习一些新技巧,MongoDB将是你的选择。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
翻译
相关推荐
-
eHarmony公司利用Redis NoSQL数据库进行热存储
虽然关系型数据库不会消失,但关系型数据库管理系统有时仅在会话管理、推荐引擎和模式匹配等关键Web应用程序中担当 […]
-
2017年1月数据库流行度排行榜 新年新气象
新年新气象,数据库知识网站DB-engines最近更新了2017年1月份数据库流行度榜单。TechTarget数据库网站将与您分享1月份的榜单排名情况,让我们拭目以待。
-
2016年12月数据库流行度排行榜 几家欢乐几家愁
在过去的6个月中,数据库排行榜的前二十名总体上没有太大的变动,那么数据库知识网站DB-engines最近更新的2016年12月份数据库流行度排名情况是否一如既往的沉寂、低调呢?
-
2016年10月数据库流行度排行榜 两组数据库棋逢对手
数据库知识网站DB-engines更新了2016年10月份的数据库流行度排行榜,10月份的榜单又有哪些变化,哪些惊喜呢?