技术开发 频道

对SQL说不!NoSQL的数据库技术革命

    什么是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说。

    它们击碎了性能瓶颈。NoSQL的支持者称,通过NoSQL架构可以省去将Web或Java应用和数据转换成SQL友好格式的时间,执行速度变得更快。

    “SQL并非适用于所有的程序代码,”数据库分析师Curt Monash说。对于那些繁重的重复操作的数据,SQL值得花钱。但是当数据库结构非常简单时,SQL可能没有太大用处。

    Adobe公司资深计算机科学家Raffaele Sena说,当一年半前Adobe准备重新更新ConnectNow网络协作服务时,正是由于上面的理由,他们决定不采用关系型数据库。

    Adobe决定使用Terracotta 提供的Java集群软件,管理Java格式的数据,Sena说,这使ConnectNow的性能提高到前一版本的2至3倍。

   没有过多的操作。虽然NoSQL的支持者也承认关系数据库提供了无可比拟的功能集合,而且在数据完整性上也发挥绝对稳定,他们同时也表示,企业的具体需求可能没有那么多。

   以Adobe的ConnectNow为例,Sena说,当用户在线时它会不通过数据库而制作三份会话数据,在离线后删除。“因此我们并不需要数据库,因为具体所需要的数据是在内存中的,”他说。

   

0
相关文章