作为NoSQL数据库的代表,MongoDB、Cassandra以及HBase等都在以飞快的速度发展着。这些数据库旨在解决传统关系型数据库(RDBMS)无法解决的问题,因此也对RDBMS在企业中的“统治”地位提出了挑战。与此同时,虽然种类繁多的产品让NoSQL技术充满了活力,但潜在用户这个命题还是让NoSQL的发展蒙上了阴影。
在深入探讨这个问题之前,我们应该提出这样一个疑问:是什么让NoSQL变得越来越重要?简单的答案就是大规模分布式处理已经在应用中得到普及,这让传统数据库捉襟见肘。不得不承认,在一些企业应用,特别是Web应用当中,关系型数据库并不是最佳的选择。
举个很简单的例子,在大型分布式系统当中,传统关系型数据库的成本问题就能让企业头痛不已。它无法快速适应不同类型的数据,比如像文本,图片这样的非结构化数据。而在应对传感器以及Web活动日志等海量数据时,传统数据库的表现无法让人信服。
当人们发现有越来越多的理由摆脱关系型数据库的束缚时,“用正确的工具解决问题”就成了目前最主流的思维方式。而且出现了大量的NoSQL数据库选项,能够让用户来应对各种各样的问题。
寻找Cassandra
Apache Cassandra就是一个很好的例子。与很多其他的NoSQL技术相似,Cassandra数据库的出现很大程度上是依赖于Web 2.0巨鳄——Facebook在背后的支持。Facebook之所以创建Cassandra就是为了让社交网络中的用户可以搜索他们的收件箱。当Cassandra在2008年发布的时候,它能够在不同的数据中心之间进行复制,支持了上亿用户的搜索服务。
Cassandra是一个分布式键值(Key-Value)数据库,采用了行式存储的方式以及P2P(shared nothing)的架构。它的设计参考了Google的BigTable以及Amazon Dynamo。随着近几年的发展,Cassandra添加了对MapReduce的支持,改进了查询语言和触发器并对轻量级的交易以及数据压缩进行了优化。
Facebook之后又用Hadoop和HBase替换了基于Cassandra的搜索系统,同时把Cassandra开源。而Cassandra也在2010年成为了Apache软件基金会的顶级项目。
对症下药
Cassandra表现出对互联网应用的良好支持。Tacoma公司的技术负责人Jason Atlas介绍,他们公司最著名的就是IID,即运行在MySQL数据库集群上,快速增长的IP地址数据库。Atlas透露,出于成本等原因的考虑,MySQL已经无法满足持续增长的需求。
IID每周都要收集60多万个不同的IPv4地址和主机名,相关的元数据收集也在快速增长。Atlas表示:“我们无法一次存储30天以上的信息,问题主要出在扩展性方面。IPv4数据更适合键值的存储方式,因此我们最终选择了DataStax提供的企业级Cassandra数据库。”
由于带有Google-Amazon以及Facebook的“血统”,Cassandra能够运行中廉价的服务器集群当中。Atlas表示,Cassandra能够支持接近线性的扩展,这是之前在MySQL上做不到的。同时DataStax的Cassandra也提供了与MapReduce的良好集成。
然而Atlas也提醒,无论是选择Cassandra还是其他的NoSQL数据库,“为了换而换”的想法是不明智的,企业需要找到问题所在而对症下药,NoSQL数据库并不一定是最佳的选择。
NoSQL产品之间没有可比性
整理各种NoSQL数据库技术是一件困难复杂的事。一些商用NoSQL厂商也已经在企业级应用市场打出了名号,比如DataStax(Cassandra)、Basho Technologies(Riak)、CouchBase、MarkLogic以及MongoDB Inc.等,都入围了今年Gartner新推出的运营数据库管理系统魔力象限报告。然而在几个特定的领域,还有很多NoSQL数据库,即使在同一个领域也有不同的产品来支持不同类型的用户。可以说NoSQL的产品图景就像是一座迷宫,有时也会让用户产生疑惑。
Gartner分析师Merv Adrian在Twitter上RT了一条关于NoSQL数据库评选的消息,他认为这就像是在对比你更喜欢苹果、鸡尾酒还是西兰花,它们都有不同的应用场景,对比NoSQL产品是没有意义的。
Atlas也同意这个观点,他认为MongoDB和Cassandra就没有什么可比性,它们的共同点只是都叫做NoSQL数据库而已,它们的应用场景非常不同。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
翻译
相关推荐
-
MongoDB与Cassandra数据库对比
MongoDB和Cassandra都属于NoSQL数据库系列,它们也恰好都是开源,但是,它们的相似之处仅此而已 […]
-
创建NoSQL数据建模符号 企业架构师亲自上阵
新兴的NoSQL数据风格促使创新的应用程序快速发展,但NoSQL同时也带来了挑战。NoSQL系统能够快速投入生产,有时甚至根本不用创建任何的前期模式。
-
深入理解Amazon DynamoDB NoSQL云数据库服务
Amazon DynamoDB NoSQL云数据库即服务主要为跨移动设备、网页web端、游戏、数字营销和物联网领域的应用提供支持。
-
SQL和NoSQL数据库设计之争
企业收集了很多大规模增长的松散结构化数据,Hadoop,Spark以及其他新技术处理这些数据非常有助于改善商业智能分析效率。