BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

架构师(12月刊)

| 作者 InfoQ中文站 关注 20 他的粉丝 发布于 2012年12月11日 QCon北京2018全面起航:开启与Netflix、微软、ThoughtWorks等公司的技术创新之路!

相关内容

架构师(2012年11月刊)

架构师(2012年10月刊)

架构师(2012年9月刊)

架构师(2012年8月刊)

架构师(2012年7月刊)

架构师(2012年6月刊)

架构师(2012年5月刊)

架构师(2012年4月刊)

架构师(2012年3月刊)

架构师(2012年2月刊)

架构师(2012年1月刊)

架构师(2011年12月刊)

 


《架构师》月刊由InfoQ中文站制作出品。

读者反馈/投稿:editors [at] cn.infoq.com

商务合作:sales [at] cn.infoq.com,联系电话:15810407783

重要提示:如果您无法成功下载,请先在网站左上角登录,然后再次刷新本页面,重新下载即可。有任何问题请直接拨打010-64738142咨询,感谢支持。

 

 NoSQL,走向成熟

在玛雅预言中的末世之年,整个IT业界却似乎可以用“波澜不惊”四个字来概括。没有惊天动地的大新闻来攫取眼球,对于媒体人而言,或许是一种不幸;但对于程序员,却可以减少太多技术选择带来的茫然。没有你方唱罢我登场的喧嚣,没有概念经济的浮夸与炒作,许多技术于是从绚烂归于平淡。

技术由绚烂归于平淡,并不意味着它将落伍于时代,退出历史舞台,而是大浪淘沙炼出真金,乃返璞归真的升华。业界颇有几种技术正是沿着这样的发展脉络不屈地前进,例如本期《架构师》专题讨论的技术NoSQL。

编者认为,NoSQL在褪去浮华之后,已经逐渐迈向了成熟。一个标志是用户群的增加。虽然,Martin Fowler在去年接受InfoQ的采访时,认为:“关系数据库仍然是大多数情况下的选择,至少未来几年是这样的。毕竟,关系数据库产品很成熟,有丰富的支持工具,而且相对来说人们对它们已经有很好地理解了。”但他同样对采用NoSQL技术的项目表示信心满满。

可以看到,许多NoSQL技术已经在互联网应用以及大数据处理方面露出峥嵘,即使是在企业应用领域,它们也逐渐崭露头角。以文档数据库为例,作为个中翘楚的MongoDB,就被SoureForge、MTV等互联网站广泛使用。而作为全球排名第一的ERP软件开放商SAP,也将MongoDB作为其PaaS平台的核心组件,用以支持企业内容管理(Enterprise Content Management)。Neo4j作为图形数据库的领跑者,目前已有许多财富500强的企业如Adobe,Cisco成为了Neo4j的客户。

提及NoSQL技术,就不能不提到它与关系型数据库之间的关系,尤其是我们在实际运用中,会面临一个棘手的问题,那就是如何实现关系数据库到NoSQL的平滑迁移。很显然,只要支持这一特性,就能更好地将NoSQL运用到遗留系统的技术栈迁移场景,拓宽NoSQL技术的应用范围。MongoDB很好地做到了这一点,例如Server Density就选择了从MySQL迁移到MongoDB。

不仅是MongoDB支持这种迁移,Couchbase支持的特性也不让MongoDB专美于前。本期《架构师》的专题文章《从关系数据库向NoSQL迁移:采访Couchbase的产品管理主管Dipti Borkar》介绍了使用Couchbase进行这种迁移的时机、步骤、困难以及选择NoSQL的优点。

NoSQL产品之间的良性竞争也可以从另一个侧面证明NoSQL技术的成熟。例如CouchDB与MongoDB之间的竞争。事实上,CouchDB这种使用JSON作为文档,运用JavaScript完成MapReduce查询的方式,以及侧重于Availability(可用性)与Partition-Tolerance(分区容忍度)的表现(相对而言,MongoDB更侧重于一致性与分区容忍度),使得它迅速成为了诸多互联网站的新宠。本期专题文章《CouchDB是什么?为什么我们要关注它?》非常详细地介绍了CouchDB。

或许,我们还可以从各种NoSQL产品的版本来判断NoSQL的成熟度,例如MongoDB的版本已经发展到2.2.2,Neo4j的版本发展到了1.9。不过,这种判断未免有些草率。判断成熟度的另一个佐证则是该技术是否产生了大量相关的衍伸产品。Martin Fowler在展望 NoSQL数据库市场的发展趋势时,就认为“现在的一切都是在添加工具和成熟度,使这些数据库更容易很好地使用。”对于 NoSQL技术,我们确实看到了这种趋势,如Apache GORA与Spring Data的出现。Spring Data提供了访问数据库的统一API,因为它既能支持关系型数据库,又能支持REST、大数据以及主流的NoSQL数据库,如MongoDB、Neo4j等。Apache GORA则是NoSQL数据库的ORM框架,提供了各种NoSQL数据存储之上的统一前端。专题文章《Julien Nioche谈Apache Nutch 2的特性及产品路线图》在介绍Web搜索框架Nutch时,谈到了它与NoSQL以及ORM框架GORA之间的关系。

此外,还有许多创新的NoSQL产品的出现,让人眼睛一亮。例如提供不可变数据库服务器的Datomic,具备事务管理和部署的特性,并能在云中将数据库作为服务提供给用户。还有VoltDB,它尝试在提供可伸缩性的同时使用SQL范型。或许它们不能完全划归到NoSQL类别中,而应该称之为NewSQL,甚至是MoreSQL。451 Group的高级分析师Matthew Aslett就将NoSQL定义为“旨在满足分布式体系结构的可扩展性需求和/或无模式数据管理需求”,NewSQL则被定义为“旨在满足分布式体系结构的需求,或提高性能以便不必再进行横向扩展”。Alexander Tatiyants撰写的文章《NoSQL No More: Let’s double down with MoreSQL》,则掀起了MoreSQL的热潮。个人认为,这些技术事实上还是NoSQL技术的一种发展。

我们还可以预见,在很长一段时间内,会存在关系数据库与NoSQL并存的状态,甚至在同一个系统中出现,这正是Martin Fowler所谓的Polyglot Persistence。这显然是由这两种不同类型的数据库,甚至是不同类别的NoSQL数据库各自适应的场景不同导致的必然结果。无论如何,种种迹象证明,NoSQL技术已经走向成熟,是到了该收获果实的季节了。

本期主编:张逸

免费下载阅读

欢迎您

,并为我们提出宝贵的建议。本迷你书大小为:5.42M,您需要完整下载,方可正常阅读。

本书目录

 卷首语

人物专访

  • 阿里云大赛20万大奖获得者江林锦:ECSMate开发心得

热点新闻

  • Dropbox可伸缩性设计最佳实践分享
  • 电商网站的宕机案例分析
  • Facebook如何提高软件质量?
  • 为Web应用程序提速的50条秘技
  • Matz:如何成为语言的设计者matz

特别专题

  • 从关系数据库向NoSQL迁移
  • CouchDB是什么?为什么我们要关注它?
  • Julien Nioche谈Apache Nutch 2的特性及产品路线图

推荐文章

  • 注重实效的架构师——大胆行前人未行之路
  • 聊聊并发(四)——深入分析ConcurrentHashMap
  • Calatrava:自由构建UI的跨平台移动框架
  • QA部门将会消亡
  • 消灭神出鬼没的Heisenbug
  • arrayDB,全新而且简单的PHP ORM库

新品推荐

  • RabbitMQ 3.0版本有所简化,改进了对STOMP和MQTT的支持
  • Moscrif:用JavaScript进行跨平台移动开发
  • Pex:来自微软研究院的单元测试工具
  • ASP.NET的新特性
  • ModelMapper:从对象到对象的映射库
  • Google发布支持Java 7的App Engine预览版
  • 使用C++/CX开发Windows Store应用程序的注意事项
  • 用Visual Studio 2012 Power Tools来提高生产力
  • 微软开源Reactive Extensions
  • JustDecompile已支持C#5和WinRT
  • Visual Studio如何提高C++性能

 封面植物

  • 鹅耳枥

 

封面植物

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT