NoSQL组织上个月在旧金山的行动让人闻到了数据库革命的味道,好像一个现代IT业版的波士顿倾茶事件正在策划之中。 在NoSQL运动的最新一次聚会中,来自世界各地的150人挤满了CBS Interactive的一间会议室。 就像当年波士顿的爱国者为反抗英国重税的行动一样,NoSQL的支持者们从各地涌来,分享他们如何推翻缓慢而昂贵的关系数据库的暴政,怎样使用更有效和更便宜的方法来管理数据。曾有过一篇《关系数据库的末日是否已经来临》文章指出,云计算可能会为数据库技术的发展带来新的契机,如果想在云中获得丰富而随需应变的可伸缩性,你需要一个非关系数据库。 “关系型数据库给你强加了太多东西。它们要你强行修改对象数据,以满足RDBMS (relational database management system,关系型数据库管理系统)的需要,”Java工具提供商SpringSource公司的首席工程师Jon Travis说,他是本次集会的10位发言人之一,在他看来,基于NoSQL的替代方案“只是给你所需要的”。 开源的兴起 反SQL运动的主要倡导者都是Web和Java开发者,他们中许多人都在创业的初期历经了资金短缺并因此与Oracle说再见,然后效仿Google和Amazon的道路建设起自己的数据存储解决方案,并随后将自己的成果开源发布。现在,他们的开源数据商店管理着成百TB甚至PB的数据,由于Web 2.0和云计算的兴起,无论从技术上还是从经济上他们都无需再返回从前,甚至连想也不用想。 “Web 2.0的企业应该抓住机会,他们需要可扩展性,”总部设在伦敦的NoSQL会议组织者Johan Oskarsson说,他任职于著名的音乐网站Last.fm,其他的大多数与会者也都是网络开发者。 Oskarsson说,许多人甚至抛弃了MySQL开源数据库这个长期以来Web 2.0的宠儿,而改由NoSQL的方案来替代,因为优势实在是引人注目。 例如Facebook建立了自己的Cassandra数据商店并且在其网站上重点推出一项新的搜索功能,没有使用到现有的MySQL数据库。据Facebook的工程师Avinash Lakshma介绍,Cassandra仅用0.12毫秒就可以写入50GB的数据,比MySQL快了超过2500倍。Google也开始公测他们的云数据库Fusion Tables,这是一个和传统数据库完全不同的数据库,主要优势能够简单的解决关系型数据库中管理不同类型数据麻烦,以及排序整合的常见操作的性能问题等。 什么是NoSQL(从技术上说)? 从这些NoSQL项目的名字上看不出什么相同之处:Hadoop、Voldemort、Dynomite,还有其它很多。 但是,它们通常在某些方面相同: 不要叫它们数据库。Amazon.com的首席技术官Werner Vogels将他们的重要的Dynamo系统称作“高可用性的键值商店”。Google将自己的BigTable称作“管理结构化数据的分布式存储系统”,在《云服务颠覆开发传统观念》中曾提到,Google的Big Table不是SQL数据库,原因是SQL数据库支持的一些功能实在难以进行分割,这与我们跨机器存储数据的想法无法结合。它们都是许多NoSQL追随者的效仿模式。 它们可以处理超大量的数据。比如Zvents公司以BigTable模式搭建的开源数据库Hypertable,据Zvents工程师Doug Judd介绍,它可以每天在搜索引擎中写入10亿单元数据。 另外,BigTable与其姊妹技术MapReduce相结合,每天可以处理多达20PB的数据。 “毫无疑问,数据量越来越巨大也让人们寻找其他的数据库替代技术,”SpringSource的Travis说。 它们运行在便宜的PC服务器集群上。PC集群扩充起来非常方便并且成本很低,避免了“sharding”操作的复杂性和成本。 Google曾表示一个BigTable的大集群可以管理数千台服务器上多达6PB的数据。 “Oracle会告诉你需要购买一些硬件然后正确配置Oracle RAC,然而用其他的神奇软件你也可以达到相同的可扩展性。但是两者的开销可是天差地别。”SpringSource首席技术官Javier Soltero说。 |