在过去几十年,关系型数据库管理系统一直是数据管理的主要模型,随着Web应用数据规模的显著增长,NoSQL系统逐渐引起关注。领域专家Sherif Sakr分析指出,NoSQL具备的优势(能够水平扩展数据、支持较弱的一致性模型、能够使用灵活模式和数据模型、支持简单的低级查询接口)使其更适合在云计算领域做数据管理。

Sherif认为,云模型导致了云数据库模型的出现,事实上,有三个主要技术常用于在云平台上部署软件应用程序的数据库层:

  • 虚拟化数据库服务器
  • 数据库即服务平台
  • NoSQL存储系统

对于虚拟化来说,一般而言,资源虚拟化技术在应用程序和应用程序使用的资源之间添加了一个灵活的可编程的软件层。定义虚拟化数据库服务器的概念充分利用了这些优势,特别是当软件应用程序的现有数据库层可直接导入公共云中的虚拟机时,这些软件应用程序是专为在传统数据中心使用而设计的。

这样一个迁移过程通常只需要在部署的应用程序代码或基础架构中进行微小改变。和其他软件组件一样,在该虚拟化数据库方法中,数据库服务器被迁移到虚拟机中运行。为每个数据库副本部署一个 VM 会带来性能开销,这类开销估计小于 10%。实际上,虚拟化数据库服务器方法的一个主要优势是,应用程序可根据需要完全动态控制数据库层(数据库服务器)物理资源的分配和配置。

“数据库即服务”是这样一个概念,第三方服务器供应商托管一个关系型数据库作为一种服务。这类服务缓解了用户购买昂贵硬件和软件、处理软件升级以及雇佣专业人员进行管理和维护的需求。

实践中,如果现有软件应用程序的底层 RDBMS 与提供的服务相兼容,那么将任何软件应用程序的数据库层迁移 到关系数据库服务中预计不会太困难。但是服务供应商可能因为各种原因带来一些限制或约束(比如,托管数据库的最大容量,可行并发连接的最大数量)。此外,软件应用程序可能在控制其应用程序的分配资源方面不够灵活(可能动态分配过多的资源来处理不断增长的工作负载,或动态减少分配资源以降低操作成本)。整个资源管理和分配过程由供应商控制,对于数据库层来说,这需要一个准确的分配计算资源计划,并通过利用云计算环境的弹性和可伸缩性来限制用户应用程序功能,从而最大限度地增加其获益。

Sherif指出,不断增长的可伸缩性和新应用程序 需求为传统 RDBMS 带来了新的挑战,包括某些大规模网络应用程序对这个 “万能” 方法的不满。这个问题的解决方法是新一代的低成本、高性能数据库软件,专门设计用于挑战关系数据库管理系统优势。NoSQL 运动的一个主要原因是不同的 Web、企业和云计算应用程序的实现有不同的数据库需求,例如,不是每个应用程序都需要严格的数据一致性。再比如:像 eBay、Amazon、Twitter 或 Facebook 这类大流量网站,对可伸缩性和高可用性都是非常严格的要求,不容妥协。对于这些应用程序,即使是最轻微的故障都会带来重大的经济后果,从而影响顾客信任。

Sherif列举了NoSQL 系统具有的主要优势:

  • 弹性伸缩:多年来,数据库管理员一直依赖纵向扩展方法,而不是横向扩展方法;随着目前事务级别和高可用性需求的不断增加,横向扩展(特别是在商用硬件上)的经济优势变得极具吸引力。NoSQL 系统设计具有透明扩展能力,可利用新节点添加优势。
  • 更少的管理:NoSQL 数据库通常旨在支持诸如自动修复和简单的数据模型等特性;这会导致较低的管理和调优需求。
  • 更好的经济效益:NoSQL 数据库通常使用大量廉价商品服务器来管理激增的数据和事务量。
  • 灵活的数据模型:NoSQL 数据库具有更为宽松的数据模型限制(如果有的话),因此应用程序和数据库模式改动可能更小。

但是,NoSQL 数据库仍然需要克服许多障碍,Sherif认为需要改进的地方:

  • 编程模型:NoSQL 数据库提供一些专用查询和分析设施。即使一个简单的查询也需要大量的编程知识 。由于缺少声明表述支持,重要的join 操作一直被认为是这些系统的主要限制。
  • 事务支持:事务管理是功能最强大的一个 RDBMS 特性。目前,对于那些被接受用来实现任务关键系统的事务来说,NoSQL 数据库系统上的事务概念的非存在限制(limited-to-non-existent)支持是一个障碍。
  • 成熟性:众所周知,RDBMS 系统具有高稳定性和丰富的功能性。相比之下,大多数 NoSQL 替代方案还处于预生产版本阶段,很多功能尚不稳定,且无法实现。这意味着企业在进入新一波数据管理时仍需谨慎。
  • 支持:企业还在寻求保障,如果系统出现故障,那么他们能够得到及时的、足够的支持。RDBMS 供应商竭尽全力提供高级支持。相比之下,很多 NoSQL 系统是开源项目,目前尚未获得支持。
  • 专业人士:几乎每个 NoSQL 开发人员都处于学习阶段;当然,这种状况不会持续太长时间。但是目前寻找经验丰富的 RDBMS 程序员或管理员比寻找 NoSQL 专家更容易。

原文链接:http://www.infoq.com/cn/news/2013/10/cloud-nosql

转:NoSQL更适合担当云数据库吗的更多相关文章

  1. 重新定义数据库的时刻,阿里云数据库专家带你了解POLARDB

    摘要:POLARDB是阿里云ApsaraDB数据库团队研发的基于云计算架构的下一代关系型数据库,其最大的特色是计算节点与存储节点分离,借助优秀的RDMA网络以及最新的块存储技术.POLARDB不但满足 ...

  2. 再不懂时序就 OUT 啦!,DBengine 排名第一时序数据库,阿里云数据库 InfluxDB 正式商业化!

    云数据库 InfluxDB® 版介绍 阿里云数据库 InfluxDB® 版已于近日正式启动商业化 . 云数据库 InfluxDB® 是基于当前最流行的开源数据库 InfluxDB 提供的在线数据库服务 ...

  3. 云数据库 MySQL 8.0 重磅发布,更适合企业使用场景的RDS数据库

    点击订阅新品发布会! 新产品.新版本.新技术.新功能.价格调整,评论在下方,下期更新!关注更多内容,了解更多 最新发布 云数据库MySQL 8.0 升级发布会 2019年5月29日15时,阿里云云数据 ...

  4. 阿里云更懂你的数据库,免费提供DBA服务

    阿里云更懂你的数据库,免费提供DBA服务   阿里云云数据库(RDS)管理控制台近期将全面升级为云数据库管家.云数据库管家的使命是提供便捷的操作.贴心的服务.专业的处理建议,帮助用户管理好云数据库. ...

  5. B+树比B树更适合实际应用中操作系统的文件索引和数据库索引

    B+树比B树更适合实际应用中操作系统的文件索引和数据库索引 为什么选择B+树作为数据库索引结构?   背景 首先,来谈谈B树.为什么要使用B树?我们需要明白以下两个事实: [事实1]不同容量的存储器, ...

  6. 【IT名人堂】何云飞:阿里云数据库的架构演进之路

    [IT名人堂]何云飞:阿里云数据库的架构演进之路 原文转载自:IT168 ​ 如果说淘宝革了零售的命,那么DT革了企业IT消费的命.在阿里巴巴看来,DT时代,企业IT消费的模式变成了“云服务+数据”, ...

  7. 从运维的角度分析使用阿里云数据库RDS的必要性--你不应该在阿里云上使用自建的MySQL/SQL Server/Oracle/PostgreSQL数据库

    开宗明义,你不应该在阿里云上使用自建的MySQL or SQL Server数据库,对了,还有Oracle or PostgreSQL数据库. 云数据库 RDS(Relational Database ...

  8. 转- 阿里云、Amazon、Google云数据库方案架构与技术分析

    「一切都会运行在云端」. 云时代早已来临,本文着眼于顶级云服务商云服务商的云数据库方案背后的架构,以及笔者最近观察到的一些对于云数据库有意义的工业界的相关技术的进展,希望读者能有所收获. 现在越来越多 ...

  9. 选择阿里云数据库HBase版十大理由

    根据Gartner的预计,全球非关系型数据库(NoSQL)在2020~2022预计保持在30%左右高速增长,远高于数据库整体市场. 阿里云数据库HBase版也是踏着技术发展的节奏,伴随着NoSQL和大 ...

随机推荐

  1. npm常用命令总结

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: rgba(2 ...

  2. OpenReports操作指南

    最近要玩OpenReports,但在网上找了一圈,能用的资料少得可怜,所以把最近使用下来,积累的一些技巧记录下来(有部分整合了网上的资源). 备注:以下操作说明基于已做汉化的项目(汉化方案请参考:ht ...

  3. OpenCV 编码样式指南

    OpenCV 编码样式指南   前言 本文档是对OpenCV中代码风格的简短说明,因为OpenCV的核心库(cv,cvaux)是用C和C++编写的,所以本文档仅对用C和C++代码的编写有效.   文件 ...

  4. Etcd学习(一)安装和.NETclient測试

    Etcd是一个比較新的分布式协调框架,由CoreOS的开发团队开发,如今才仅仅到0.4.6版本号,还没公布1.0版本号 我看了一下GitHub上作者们的提交记录,如今应该还在如火如荼的开发以及改动Bu ...

  5. linux 下 apt命令集详解

    apt命令用法 packagename指代为软件包的名称 apt-get update 在修改/etc/apt/sources.list或/etc/apt/preferences之後运行该命令.此外您 ...

  6. 用 Java 技术创建 RESTful Web 服务--转载

    简介 JAX-RS (JSR-311) 是为 Java EE 环境下的 RESTful 服务能力提供的一种规范.它能提供对传统的基于 SOAP 的 Web 服务的一种可行替代. 在本文中,了解 JAX ...

  7. 多线程下的performSelector和NSThread的使用

    多线程下的performSelector和NSThread的使用 NSThread的多线程使用: 我们可以使用这两种方法来使用线程中的问题 - (id)initWithTarget:(id)targe ...

  8. 移动页面缩放方法之(一)控制meta法

    <!DOCTYPE HTML> <html lang="zh-cn"> <head> <meta http-equiv="Con ...

  9. css.day01.eg

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. html.ex.day01

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...