关于 NoSQL 数据库你应该了解的 10 件事
四分之一个世纪以来,关系型数据库(RDBMS)一直是主流数据库模型。但是现在非关系型数据库,“云”或者“NoSQL”数据库,正在作为一种替代数据库模型获得越来越多的占有率。本文中我们将关注非关系型 NoSQL 数据库的 10 个关键特征:排在前 5 位的优点和前 5 位的挑战。
提示:点击链接可以下载本文 英文版PDF
NoSQL 的五大有点
1:弹性扩展
多年来,数据库负载需要增加时,数据管理员只能依赖于纵向扩展(scale-up)–买更多更强的服务器,而不是依赖横向扩展(scale-out)–将数据库分布在多台主机上。无论如何,随着交易频率、可用性要求的提高,和数据库向云上和虚拟环境中迁移的需求的提出,基于商业硬件的横向扩展所带来的经济效益已经变得无法拒绝。
相对于 RDBMS 系统不能轻松的在商业集群上进行横向扩展,新生的 NoSQL 数据设计上就是要能够透明的利用新节点进行扩展。NoSQL 数据库的设计通常要考虑利用低成本的商业硬件。
2: 大数据
就像过去二十年中交易率的提高已经超出了人们的想象,被存储的数据的规模也极大的增加了。O’Reilly 聪明的称这种现象为“数据的工业革命”。RDBMS 系统的能力也在提高去适应这种增长,但就像交易率上的限制一样,单个 RDBMS 系统实际能管理的数据规模已经无法满足一些企业的需求。今天,NoSQL 系统,例如 Hadoop,已经能过处理“大数据”级别的数据容量;而这种数据容量远超过最大的 RDBMS 系统的处理能力。
3. 告别DBA(再见?)
尽管这些年 RDBMS 供应商声称有很多易管理性上的提高措施,高级 RDBMS 系统上的维护还是离不开训练有素但昂贵的 DBA 们。 DBA 需要紧密的参与高级 RDBMS 系统的设计、安装和持续的调优。
理论上讲,NoSQL 数据库通常从最基本的设计就要求更少的管理:自动化修复和数据分布、更简单的数据模型带来更少的管理操作和调优需求。实际上,DBA 已死的说法多少有点夸张。总要有人为关键业务数据存储的性能和可用性负责。
4: 经济性
NoSQL 数据库通常使用廉价服务器集群去管理迅猛发展的数据和交易容量,而 RDBMS 倾向依赖昂贵的专业服务器和存储系统。结果就是,NoSQL 系统的每千兆字节成本或者每秒的交易成本要很多倍的低于 RDBMS 系统,这使得你可以非常低的成本去存储和处理更多的数据。
5: 灵活的数据模型
变更管理对于大型 RDBMS 产品是很头疼的。 在 RDBMS 中,即使是微小的数据模型变更也需要非常小心的处理,而且可能要求系统停机或者降低服务级别。
NoSQL 数据库的数据模型限制则轻松的多 — 或者根本就没有。NoSQL 的键值存储和文档数据库允许应用在一个数据元素中存储任何结构的数据。即使是相对严格的基于 BigTable 的 NoSQL 数据库(Cassandra,HBase)通常也允许没有太多限制的创建新列。
结果就是,应用或者数据库模式的改变不需要作为一个复杂的变更单元进行管理。理论上讲,这允许应用可以更快的迭代,当然,很清楚的一点是,如果应用不能保证数据的完整性这可能带来不良的副作用
NoSQL 5 大挑战
NoSQL 数据库的前景很被看好,但是要应用到主流的企业还有许多困难需要克服。这里是几个首先要解决的问题。
1: 完备
RDBMS 系统已经存在很长时间了。而 NoSQL 的拥护者认为存在时间的增长就是它退化的信号。但是对大多数 CIO 来说 RDBMS 是稳定的。多数情况下, RDBMS 系统是稳定且多功能的。相比较而言, 大多数 NoSQL 产品的一些关键组件还有待实现。
大多数的开发者都渴望生活在科技的前沿,但是企业却必须小心谨慎。
2: 支持
企业要保证,如果一个关键系统崩溃,他们能够得到及时的有支持。所有 RDBM 提供商都付出很大的力量用以朝代高水平的企业支持。
相比之下,大部分 NoSQL 系统都是开源项目,尽管每一个 NoSQL 数据库通常都有一家或多家公司提供支持,但这些公司通常是小公司,缺少全球影响力,支持资源和像 Oracle,Microsoft,或者 IBM 一样的信誉。
3: 数据分析和商业智能
为了满足流行的 Web 2.0 应用对可扩展的要求,NoSQL 数据库应运而生。因而,它们的功能集都是顷向于为这些应用服务。但是在 Web 应用增删改查的业务中产生的数据具有商业价值。从这些数据库中挖掘潜在的商业信息提高企业的效率和竞争力以及商业智能(BI)对所有企业来讲都是 IT 所面昨的关键的问题。
NoSQL 数据库缺少即席查询和数据分析工具。即便一个简单的查询都需要专业的编程技能,并且传统的 BI 工具不提供对 NoSQL 的连接。
HIVE 和 PIG 是为解决这个问题而出现的,他们提供了更方便的数据访问方式,可以访问存储在 Hadoop 集群上的数据甚至其他 NoSQL 数据库。Quest Software 已经开发了一个云数据库产品 — Toad — 可以为多种 NoSQL 提供即席查询能力。
4: 管理
NoSQL 的设计目标可能是零管理方案,对现实离这一目标太远。目前 NoSQL 的安装和维护都需要掌握技术。
5. 专业性
熟悉关系数据库概念和编程的开发者遍布全球各领域,但是几乎每一个非关系数据库的开发者都仍然处在学习当中。随着时间推移,这种情况当然会被解决,但是就现在而言,找一个关系数据库的开发人员或者是管理人员,显然更加容易
总结
NoSQL 数据库正在成为数据库领域中越来越重要的组成部分,如果得到正确的使用,它将会带来真正的益处。然而,对于企业来说,使用 NoSQL 数据库的时候应当时刻注意相关法律问题。
关于 NoSQL 数据库你应该了解的 10 件事的更多相关文章
- 关于NoSQL数据库你应该知道的10件事
关系数据库模型已经流行了几十年了,但是一种新类型的数据库——被称为NoSQL,正在引起企业的注意.下面是关于它的优势和劣势的一个概述.二十多年以来,对数据库管理来说,关系数据库(RDBMS)模型一直是 ...
- 转:你需要知道的NoSQL数据库10件事
你需要知道的NoSQL数据库10件事 NoSQL的5个优势 1.弹性扩展 多年来,数据库管理员一直依赖于向上扩展(scale up)-随着数据库负载的增加购买更大的数据库服务器―而不是向外扩展-随着负 ...
- 在 PHP 7 中不要做的 10 件事
在 PHP 7 中不要做的 10 件事 1. 不要使用 mysql_ 函数 这一天终于来了,从此你不仅仅“不应该”使用mysql_函数.PHP 7 已经把它们从核心中全部移除了,也就是说你需要迁移到好 ...
- 【转载】在IT界取得成功应该知道的10件事
在IT界取得成功应该知道的10件事 2011-08-11 13:31:30 分类: 项目管理 导读:前面大多数文章都是Jack Wallen写的,这是他的新作,看来要成为NB程序员还要不停的自我总结 ...
- 亲身体验:digitalocean vps能做的10件事
我写过一篇亲身体验:digitalocean和linode评测哪个好,帮助不少网友选购价格便宜性能优异的免备案vps,相信大家对两家产品有所了解.vps的性能和用途远远超过传统的虚拟主机,你拥有独立I ...
- 使用Office 365前,企业必须要知道的10件事
目前的市场上充斥着很多关于微软Office 365的炒作,相信厂商.客户或者企业的都有自己不同的考虑.Office 365是微软云版本的Office,用户可以通过互联网创建一个帐户,付款.下载应用安装 ...
- (转)IE6 死后即将大快人心的10件事
(转)未来五年程序员应当具备的十项技能 W3C CSS 2.1 Specification(Quick Table of Contents) (转)IE6 死后即将大快人心的10件事 2009-04- ...
- (0)开始 Raspberry Pi 项目前需要知道的 10 件事
https://www.digikey.cn/zh/articles/techzone/2017/feb/10-things-to-know-before-starting-a-raspberry-p ...
- 保护嵌入式802.11 Wi-Fi设备时需要考虑的10件事
保护嵌入式802.11 Wi-Fi设备时需要考虑的10件事 10 things to consider when securing an embedded 802.11 Wi-Fi device 随着 ...
随机推荐
- ASP。net中如何在一个按钮click事件中调用另一个按钮的click事件
方法一: 直接指定 事件<asp:Button ID="btn1" runat="server" Text="按钮1" onclick ...
- [转]Delphi中ShellExecute的妙用
Delphi中ShellExecute的妙用 ShellExecute的功能是运行一个外部程序(或者是打开一个已注册的文件.打开一个目录.打印一个文件等等),并对外部程序有一定的控制. ...
- [转]mysql导出导入中文表解决方法
在开发过程中会经常用到mysql导出导入中文表,本文将详细介绍其如何使用,需要的朋友可以参考下. 在开发过程中会经常用到mysql导出导入中文表,本文将详细介绍其如何使用,需要的朋友可以参考下一.先针 ...
- 注解SpringMVC
<!--注解映射器 --> <bean class="org.springframework.web.servlet.mvc.method.annotation.Reque ...
- 342. Power of Four
题目: Given an integer (signed 32 bits), write a function to check whether it is a power of 4. Example ...
- python中的几种集成分类器
from sklearn import ensemble 集成分类器(ensemble): 1.bagging(ensemble.bagging.BaggingClassifier) 对随机选取的子样 ...
- js编译和执行顺序
JS是一段一段执行的(以<script>标签来分割),执行每一段之前,都有一个“预编译”,预编译干的活是:声明所有var变量(初始为undefined),解析定义式函数语句. 还有个关于 ...
- JQuery 点击控件获取当前坐标时不兼容IE7
现在要求在点击文本框时,获取文本框的坐标,需要相对文本框的位置来显示信息. 思路就是,绑定文本框的click 事件,一旦有点击就触发,去调用clickevent 函数执行计算. $('#txt_m') ...
- window 配置 sendmail
从http://glob.com.au/sendmail/下载sendmail.zip 解压sendmail.zip到目录下(最好使用短路径,长路径会导致问题的出现),我安装的路径是: E:\wamp ...
- ecshop数据库操作类
ECShop v2.7.2没有使用一些开源的数据库操作类,比如adodb或者PEAR,而是封装了自己的实现. 好处:实现非常轻量,只有一个文件,27Kb,大大减小了分发包的文件大小. 当网站需要做me ...