NoSQL挑战关系型数据库统治地位

日期: 2014-11-30 作者:Jack Vaughan翻译:孙瑞 来源:TechTarget中国

1922年,汽车业巨头亨利·福特曾说:“任何顾客可以将这辆车漆成任何他所愿意的颜色,只要它保持它的黑色。”回顾历史,IT经理、应用开发者以及业务主管在选择数据库技术的时候,同样面临着有限的选择。以SQL编程语言为基础的关系型数据库长期统治着企业IT与业务系统的底层数据引擎,而真正具备颠覆力量的挑战者并没有出现。

然而,事情在逐渐发生变化。从十年前开始,一些互联网公司如谷歌、亚马逊、雅虎等开始纷纷尝试SQL之外的解决方案。在这些互联网巨头之中,对超大型Web应用以及快速变化的数据有着明显的需求,传统关系型数据库在应对这些问题上显得捉襟见肘。经过第一波技术洪流的洗礼,一个取代传统僵化SQL开发准则的新技术诞生了,它提供了更加灵活、扩展性更好的数据设计方法。而根据数据模型的不同,基于这一技术的产品分成了好几类,但它们都有着同样的名字,即NoSQL数据库。

事实上,几年前风生水起的“NoSQL运动”主旨并不是为了完全取代关系型数据库技术。但不可否认,有一些商业化的NoSQL公司这样说是为了推销自己的产品。如今,越来越多的人开始承认所谓NoSQL就是“Not only SQL(不只是SQL)”的意思,而且有很多NoSQL数据库还用到了SQL元素。NoSQL并不是关系型数据库的替代品,它更适合细分的应用场景,特别是需要频繁访问更新的海量数据集应用。

在一些对快速增长的Web、社交媒体、人口统计以及机器数据有需求的企业中,他们往往会使用NoSQL数据库来存储数据,而在应对数据处理分享以及分析负载的时候,他们更倾向于选择使用基于SQL的软件工具。

举例来说,Crittercism是一家初创企业,他们会收集超过8亿个移动设备的实时数据,并根据这些数据帮助企业监控移动应用的性能。在应用性能管理领域,一个用户与app的交互就被视为一个请求。Crittercism每秒钟都会收集超过30000个请求的信息,也就是说每天要处理30亿个请求。换算成数据量的话,就是每天创建一个20TB的数据池,而总体的数据量是在不断累加的。

除此之外,还包括了应用错误、崩溃诊断数据,以及所谓的“网络碎片”,记录网络请求以及其他导致应用出错的事件。这些数据是极为“非结构化并不均匀的”,每一个客户,每一个应用所产生的数据都千差万别。

传统与创新的杂糅

所涉及的信息量,它多变的特性催生了一种全新的格式化数据方法。使用关系型数据库软件需要大量的处理开销,包括维护数据库schema以归纳所有的信息,而每一个针对schema的修改都可能导致数据库系统出错。Crittercism公司必须不断地对收集以及存储数据的方式进行调整,甚至一天之中修改好几次。如果倒退10年,你根本无法想象会有Crittercism这样的公司存在,因为那时候SQL是唯一的选择。

Crittercism选择了MongoDB,它是目前最流行的NoSQL数据库产品。与其他NoSQL技术相类似,MongoDB提供了灵活的schema设计能力。这使得Crittercism能够在单独的“集合(MongoDB的‘表’)”中存储应用错误和崩溃数据,而无需创建一个严格的schema。相应地,由于缺少固定的数据结构与字段,使得Crittercism能够“有机地调整”他们的性能管理服务,以满足不同客户的需求。

此外,Crittercism还是用了亚马逊的DynamoDB来存储特定请求路径的数据,这部分数据需要更高的性能。但并不是说Crittercism就只用NoSQL,他们也在使用关系型数据库。据了解,一些高度结构化的运营数据存储在开源数据库PostgreSQL中,所有的信息都由AmazonRedshift云数据仓库进行汇总以做分析与报表。Crittercism的DBA团队并不是NoSQL的铁杆支持者,任何能够起作用的技术都是好的技术,Crittercism都会采用。

根据最新的TechTarget调查显示,NoSQL数据库在大数据时代更具吸引力,但普及率仍无法与关系型数据库相比。在对222名读者的调查当中,有21%的大数据项目用户在使用或计划部署NoSQL数据库。另外一项调查结果也与我们不谋而合,259名接受调查的读者中只有22%的用户表示他们使用了NoSQL平台。而由数据仓库协会发起的调查中,189名用户中有32%表示他们的企业正在使用NoSQL。但从普及率来看,NoSQL在所有列出的技术中普及率仍然最低,其他还包括关系型数据库、数据库一体机、列式数据库以及Hadoop。具体数据请参考图一。

图一

而对于数据中心的渗透,NoSQL的脚步仍在前进:根据分析机构Wikibon的预测,全球范围内NoSQL软件与服务市场份额将从2012年的2.86亿美元增长到2017年的18.25亿美元。而一些风投机构也把赌注压在了MongoDB Inc.上。去年这个时候他们刚刚拿了1.5亿美元的风投。另外两家商业化NoSQL数据库公司DataStax与Couchbase Inc.也分别获得了4500万与2500万美元的投资。

关系型数据库厂商加入NoSQL竞争

即使是传统的关系型数据库巨头,也都纷纷加入NoSQL数据库的竞争中来。甲骨文早在2011年就发布了他们的Oracle NoSQL Database;去年6月,IBM在DB2关系型数据库中添加了对MongoDB应用编程接口的支持,用户可以以JSON格式在DB2中存储数据。DB2还可以处理图形数据以及XML数据。另外,IBM在今年3月还收购了Cloudant,这是一家提供CouchDB云服务的厂商。微软也在Windows Azure云平台提供了NoSQL数据存储功能。

以应用为驱动的数据以及不断增长的云计算需求为NoSQL创造了良好的生长条件。然而根据IDC数据库分析师Carl Olofson的说法,对于IT经理与业务主管来说,投资NoSQL就像是买一只新发行的股票,用户没有多少市场历史可供研究。

 “大多数NoSQL数据库都是新技术,如果投入企业应用当中就必须经过大量的测试,”Olofson说:“如果你经常修改数据定义,那么关系型数据库就不够灵活,你不可能做快速的应对。这个时候就需要考虑NoSQL数据库,但风险依然存在。”

NoSQL技术不提供完整的ACID支持,即原子性、一致性、隔离性以及持久性。它是保证事务完整性的前提条件,在这方面关系型数据库做得很好。此外,它们往往缺少企业级的支持服务,包括灾难恢复、安全性以及数据治理等。Olofson希望随着市场的不断成熟,未来这些问题都能够得到解决。

TechTarget行业分析师Wayne Eckerson表示:“NoSQL数据库在处理XML以及JSON数据方面非常好,这是很多Java开发者所熟悉的领域。此外,NoSQL还特别适合于高性能Web应用场景,其中包含了大量的读写操作。然而对于长时间运行的查询以及负责分析应用来说,NoSQL就不太适合了。”

NoSQL软件提供性能飞跃

这也反映了市场数据服务与技术公司Exelate 的数据库架构现状,他们主要为广告主提供家庭主妇的人口统计与购买行为信息。Exelate公司首席技术官Elad Efraim表示,数据就是我们的生意,而性能是最关键的因素。虽然Exelate在成立之初并没有采用NoSQL数据库技术,但对于速度和性能的需求使得Efraim的团队最终选择了内存NoSQL数据库Aerospike。通过这一解决方案,Exelate能够快速扩展公司的基础架构,满足每个月海量实时数据交易的处理需求。

Aerospike提供了一个高性能的数据资料库,包括网站用户会话行为并进行持续的更新。Efraim表示,我们的系统拥有超大规模,需要大量的读写操作在毫秒级别完成。因此对于我们来说,最重要的是能够快速访问数据,并根据这些数据做出正确决策。

数据库运行在四个拥有完全备份的数据中心里,所有的数据都根据内存进行了索引并存储在服务器集群里以备之后的分析。从这里,Exelate可以做数据挖掘并与其他数据进行比对。为了实现这一目标,Exelate并没有只使用一种NoSQL数据库技术。在Aerospike之上的是一套标准的MySQL关系型数据库,它的作用是让客户可以聚合数据。此外,公司还是用了IBM Netezza一体机以及其他关系型数据库作为数据仓库和结构化数据分析。

与亨利·福特曾经说过的名言相呼应,像Exelate以及Crittercism这样的公司并没有把自己局限在关系型数据库技术之上,他们充分利用NoSQL为他们的业务涂抹上新的颜色。而SQL所代表的经典黑色不会被IT部门完全抛弃,未来两种技术也将长期处于共存的状态。

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

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

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

作者

Jack Vaughan
Jack Vaughan

TechTarget新闻记者和网站编辑,主要关注数据管理领域的技术趋势和动态。

翻译

孙瑞
孙瑞

相关推荐