转:NoSQL更适合担当云数据库吗
在过去几十年,关系型数据库管理系统一直是数据管理的主要模型,随着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更适合担当云数据库吗的更多相关文章
- 重新定义数据库的时刻,阿里云数据库专家带你了解POLARDB
摘要:POLARDB是阿里云ApsaraDB数据库团队研发的基于云计算架构的下一代关系型数据库,其最大的特色是计算节点与存储节点分离,借助优秀的RDMA网络以及最新的块存储技术.POLARDB不但满足 ...
- 再不懂时序就 OUT 啦!,DBengine 排名第一时序数据库,阿里云数据库 InfluxDB 正式商业化!
云数据库 InfluxDB® 版介绍 阿里云数据库 InfluxDB® 版已于近日正式启动商业化 . 云数据库 InfluxDB® 是基于当前最流行的开源数据库 InfluxDB 提供的在线数据库服务 ...
- 云数据库 MySQL 8.0 重磅发布,更适合企业使用场景的RDS数据库
点击订阅新品发布会! 新产品.新版本.新技术.新功能.价格调整,评论在下方,下期更新!关注更多内容,了解更多 最新发布 云数据库MySQL 8.0 升级发布会 2019年5月29日15时,阿里云云数据 ...
- 阿里云更懂你的数据库,免费提供DBA服务
阿里云更懂你的数据库,免费提供DBA服务 阿里云云数据库(RDS)管理控制台近期将全面升级为云数据库管家.云数据库管家的使命是提供便捷的操作.贴心的服务.专业的处理建议,帮助用户管理好云数据库. ...
- B+树比B树更适合实际应用中操作系统的文件索引和数据库索引
B+树比B树更适合实际应用中操作系统的文件索引和数据库索引 为什么选择B+树作为数据库索引结构? 背景 首先,来谈谈B树.为什么要使用B树?我们需要明白以下两个事实: [事实1]不同容量的存储器, ...
- 【IT名人堂】何云飞:阿里云数据库的架构演进之路
[IT名人堂]何云飞:阿里云数据库的架构演进之路 原文转载自:IT168 如果说淘宝革了零售的命,那么DT革了企业IT消费的命.在阿里巴巴看来,DT时代,企业IT消费的模式变成了“云服务+数据”, ...
- 从运维的角度分析使用阿里云数据库RDS的必要性--你不应该在阿里云上使用自建的MySQL/SQL Server/Oracle/PostgreSQL数据库
开宗明义,你不应该在阿里云上使用自建的MySQL or SQL Server数据库,对了,还有Oracle or PostgreSQL数据库. 云数据库 RDS(Relational Database ...
- 转- 阿里云、Amazon、Google云数据库方案架构与技术分析
「一切都会运行在云端」. 云时代早已来临,本文着眼于顶级云服务商云服务商的云数据库方案背后的架构,以及笔者最近观察到的一些对于云数据库有意义的工业界的相关技术的进展,希望读者能有所收获. 现在越来越多 ...
- 选择阿里云数据库HBase版十大理由
根据Gartner的预计,全球非关系型数据库(NoSQL)在2020~2022预计保持在30%左右高速增长,远高于数据库整体市场. 阿里云数据库HBase版也是踏着技术发展的节奏,伴随着NoSQL和大 ...
随机推荐
- sqlserver授予用户查看执行计划的权限
sqlserver查看语句的执行计划是非常重要的,可以提高开发人员代码的质量.所以有必要授予开发人员对数据库查看执行计划的权限. 查看执行计划的权限属于数据库一级别的权限,具体例子如下 use ...
- 大数据分析神兽麒麟(Apache Kylin)
1.Apache Kylin是什么? 在现在的大数据时代,越来越多的企业开始使用Hadoop管理数据,但是现有的业务分析工具(如Tableau,Microstrategy等)往往存在很大的局限,如难以 ...
- bzoj2243 sdoi2011 染色 paint
明明是裸树剖 竟然调了这么久好蛋疼 大概是自己比较水的原因吧 顺便+fastio来gangbang #include<iostream> #include<cstring> # ...
- POJ1184-------操作分离的BFS
题目地址:http://poj.org/problem?id=1184 题目意思: 给你两个6位数,一个是起始值,一个最终值 初始光标在最左边 你可以左移或者右移光变 在光标处+1或者-1 在光标处和 ...
- Ubuntu12.04安装hadoop
1. 创建hadoop用户组和用户 a. 创建hadoop用户组 sudo addgroup hadoop b. 创建hadoop用户 sudo adduser –ingroup had ...
- POJ 2075 Tangled in Cables (c++/java)
http://poj.org/problem?id=2075 题目大意: 给你一些人名,然后给你n条连接这些人名所拥有的房子的路,求用最小的代价求连接这些房子的花费是否满足要求. 思路: 昨天20分钟 ...
- 搜搜(www.soso.com),I 老虎油!
搜搜(www.soso.com),I 老虎油! 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用 ...
- 你好,C++(12)怎样管理多个类型同样性质同样的数据?3.6 数组
3.6 数组 学过前面的基本数据类型之后,我们如今能够定义单个变量来表示单个的数据.比如,我们能够用int类型定义变量来表示公交车的216路:能够用float类型定义变量来表示西红柿3.5元一斤. ...
- Day1 - Python基础1 介绍、基本语法、流程控制
Python之路,Day1 - Python基础1 本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼 ...
- Sublime Text3使用详解
Sublime Text简介 Sublime Text - 性感的代码编辑器.程序员之必备神器 Sublime Text 是一个代码编辑器,也是HTML和散文先进的文本编辑器.Sublime Text ...