首页 > 大数据 > 正文

企业NoSQL应用需对症下药

2013-12-27 11:11:55  来源:TechTarget中国

摘要:在深入探讨这个问题之前,我们应该提出这样一个疑问:是什么让NoSQL变得越来越重要?简单的答案就是大规模分布式处理已经在应用中得到普及,这让传统数据库捉襟见肘。
关键词: NoSQL 数据库

    作为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数据库而已,它们的应用场景非常不同。


第三十八届CIO班招生
国际CIO认证培训
首席数据官(CDO)认证培训
责编:fanwei

免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。