如何玩转NoSQL数据库?CIO亲身体验MongoDB,Riak和Cassandra

日期: 2014-11-24 作者:Doug Henschen翻译:杨宏玉 来源:TechTarget中国 英文

Weather公司CIO Bryson Koehler整理出了MongoDB,Riak和Cassandra等NoSQL数据库的特性。他指出这其中最重要的特性是“NoSQL不会限制住你”。

Weather公司,致力于天气报告和天气预报业务,其并不缺乏数据,当然也不缺乏数据管理工具。但它为什么需要三种不同的NoSQL数据库

最近,我向Weather 公司的CIO Bryson Koehler提出了这个疑问,除了公司的CIO,Bryson Koehler还是其他很多业务单元的孵化者,包括Weather Channel,WeatherFX,Weather Underground,和Intellicast等。Weather公司每天获取和处理着约20万亿字节数据,对外提供当前全球天气状况,并为航空公司,紧急服务,货运商,公用事业,保险,以及在线天气网站和天气应用程序的用户提供天气预报服务。每天需求增加了数十亿的天气数据请求,并且预期响应时间要在10毫秒左右。

Riak是Weather 公司的后台NoSQL数据库,服务于公司的事务性存储公用网络(SUN)数据获取平台,它运行在多个亚马逊网络服务(AWS)的可用区域上,并以每小时15次的频率捕获超过20亿气象数据信息,。所以,Riak具有明确的处理规模,但该公司也使用Cassandra以及新近添加的MongoDB数据库,为Weather.com 上IOS和Android移动应用程序服务。

Weather 公司使用了不同的产品,Koehler解释说,因为“不同的工具有不同的优势。

Cassandra,它服务于Weather 公司以及全球消费者使用的第三方天气应用的API数据:“我们的数据分发平台每秒处理数十万的事务,我们发现Cassandra在用于全球分发数据上是一个很棒的解决方案,并且在[数据库]读取方面体现出很高的可用性 “。它本质上为全球各地消费者所使用的数据服务,包括Weather 公司和第三方的天气应用程序。

MongoDB,它提供了Weather.com网站和移动应用程序的中间层缓存功能:“离开我们的核心API,我们还没有全部Weather.com内容,所以MongoDB是容器和分发站,为Weather.com以及Android和iOS上的移动应用程序服务。Mongo有很多好处,这些好处基于其内建的JSON格式以及灵活性上。“

Riak,用于消费气象数据和观测,包括来自世界各地的图片和视频等:“我们喜爱Riak因其优秀的数据摄取能力,而且是以一种全球分布式的方式来实现。这对于从全球分布式平台上获取数据的入站式数据库是一个真正可靠的选择。

我曾听说Datastax,Basho和Couchbase的高管贬低MongoDB的可扩展性,但MongoDB指向大规模部署,在Facebook对超过200万台移动设备上应用程序提供支持,在eHarmony公司,MongDB每天处理着数十亿的潜在比赛预约。据Koehle所述,MongoDB为Weather.com和Weather.com移动应用程序处理着“每天十亿交易”,“毫无疑问,你可以通过配置和部署Mongo来处理大批量的交易数据。”

尽管如此,Koehler承认,他将“很乐于看到MongoDB继续使全球集群和多位置[功能]更加无缝化且易于使用。” 这些属于全球性的分布式集群,复制和负载平衡是Cassandra和Riak众所周知的功能。

从规模讨论的角度来看,很少有公司达到Weather公司的经营规模。易于开发,架构灵活性和JSON数据处理使得MongoDB的成为世界上最流行的NoSQL数据库。这就是为什么微软和IBM都进行了MongoDB的模仿,如微软的Azure DocumentDB和IBM的 Cloudant,而不是Cassandra和Riak。

Weather公司可以从三个NoSQL标准降低至两个的过程中得到巩固,Koehler说,但公司没有准备好这么做。

“由于我们构造了由许多不同的数据解决方案组成的网状结构,我们目前的环境已过于复杂,”他说。“我们希望给团队一些自由的空间,让我们可以了解所有选择的利弊,但你将会看到一些整合。”

到了那个时候,迁移将不在是一件难事,因为“关于NoSQL数据库最重要的事情是,你不会被困在其中,” Koehler说。“如果你的架构和编码正确,从一个数据库迁移到另一个并不难。随着模式的自由以及数据转存技术的发展,无论前者是一个key-value存储或其他什么形式,转储数据都将十分容易。“

对特定产品进程自定义编码的复杂的存储过程已经一去不复返了,Koehler说,但关于“结构化和编码正确”还有很多需要考虑的地方?这样做是为了避免特殊供应商提供的工具和功能可能让你身陷其中。他举了亚马逊网络服务“(AWS)的消息服务为例。

“你不必让服务在云中运行,”他解释说。“你可以只部署自己的RabbitMQ的环境,而不是陷于其中,所以你可以将一个原先部署在AWS 上的应用程序转而部署在谷歌计算云服务上。无论它是数据平台,存储环境,或云计算环境,都要小心别让自己局限在一个仅由一个供应商提供的小范围空间内“。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

翻译

杨宏玉
杨宏玉

TechTarget特邀编辑。北京邮电大学计算机科学与技术专业硕士。熟悉软件开发流程,对系统管理,网络配置,数据库应用等方面有深入的理解和实践经验。现就职于IBM(中国)投资有限公司,从事IBM服务器相关软件的开发工作。业余时间喜欢游泳登山,爱健身,喜欢结交朋友。

相关推荐