关于 NoSQL 数据库你应该了解的 10 件事

四分之一个世纪以来,关系型数据库(RDBMS)一直是主流数据库模型。但是现在非关系型数据库,“云”或者“NoSQL”数据库,正在作为一种替代数据库模型获得越来越多的占有率。本文中我们将关注非关系型 NoSQL 数据库的 10 个关键特征:排在前 5 位的优点和前 5 位的挑战。

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 数据库的时候应当时刻注意相关法律问题。

文章转载自 开源中国社区[https://www.oschina.net]

时间: 2024-09-20 19:57:26

关于 NoSQL 数据库你应该了解的 10 件事的相关文章

NoSQL 数据库你应该了解的 10 件事_数据库其它

四分之一个世纪以来,关系型数据库(RDBMS)一直是主流数据库模型.但是现在非关系型数据库,"云"或者"NoSQL"数据库,正在作为一种替代数据库模型获得越来越多的占有率.本文中我们将关注非关系型 NoSQL 数据库的 10 个关键特征:排在前 5 位的优点和前 5 位的挑战.提示:点击链接可以下载本文 英文版PDF NoSQL 的五大有点 1:弹性扩展 多年来,数据库负载需要增加时,数据管理员只能依赖于纵向扩展(scale-up)--买更多更强的服务器,而不是依赖

从初级到中级,你需要做的10件事

Justin James曾发表过一篇博文<10 tips for advancing from a beginner to an intermediate developer>,和我们一起分享怎么样才能完成程序员从初级到中级的蜕变,在这里翻译了一下转,希望给大家有所帮助. 在一封与TechRepublic会员交流的邮件当中,他提到了面向程序员的博客.文章及杂志分成以下两类:面向初学者类("hello world"这种类型的教程)以及面向专家类(MSDN杂志).这个观点是很不

最让程序员沮丧的 10 件事,你中了几枪?

软件开发是一个挺不错的工作,不过同时也像任何其他工作一样有着不好的一面.这里列出了大部分程序员对于写代码无法忍受的 10 件事. 对于非程序员来说,他们的工作看起来非常幸福.需求很高.待遇很好,公司提供各种各样的补贴福利等等.然而实话实说,虽然以上所说都不为虚,这份工作就像其他任何工作一样充满了让程序员们抓狂地扯下仅存的几根头发的烦恼.一天当中可以有好几件事能把一个普通程序员逼迫到处于崩溃的边缘. 基于来自在线论坛里真实程序员们的评论和投票,请这 10 个程序员最感到沮丧的事.如果看过之后,你还

注意!PHP 7中不要做的10件事_php实例

切记,在PHP 7中不要做的10件事 1. 不要使用 mysql_ 函数  这一天终于来了,从此你不仅仅"不应该"使用mysql_函数.PHP 7 已经把它们从核心中全部移除了,也就是说你需要迁移到好得多的mysqli_函数,或者更灵活的 PDO 实现.   2. 不要编写垃圾代码  这一条可能易于理解,但是会变得越来越重要,因为 PHP 7 的速度提升可能会隐藏你的一些问题.不要仅仅满足于你的站点速度,因为迁移到 PHP 7 才让它变快.  为了理解速度有多重要,以及如何把事情做得更

学习和使用 PHP 应该注意的10件事

学习和使用 PHP 应该注意的10件事 1 多阅读手册和源代码 没什么比阅读手册更值得强调的事了–仅仅通过阅读手册你就可以学习到很多东西,特别是很多有关于字符串和数组的函数.就在这些函数里面包括许多有用的功能,如果你仔细阅读手册,你会经常发现在以往的项目开发过程中,很多时候你在"重复发明轮子",而实际上你只需要一个核心函数就可以完成相应的功能.手册是你的朋友.另外,现在有很多使用PHP开发的开源程序.为什么不去学习和借鉴呢?下载一份开源的PHP应用程序的源代码,仔细阅读它吧.也许越大的

注意!PHP 7中不要做的10件事

切记,在PHP 7中不要做的10件事 1. 不要使用 mysql_ 函数 这一天终于来了,从此你不仅仅"不应该"使用mysql_函数.PHP 7 已经把它们从核心中全部移除了,也就是说你需要迁移到好得多的mysqli_函数,或者更灵活的 PDO 实现. 2. 不要编写垃圾代码 这一条可能易于理解,但是会变得越来越重要,因为 PHP 7 的速度提升可能会隐藏你的一些问题.不要仅仅满足于你的站点速度,因为迁移到 PHP 7 才让它变快. 为了理解速度有多重要,以及如何把事情做得更好,请看一

大规模运行MongoDB应该知道的10件事

MongoDB MongoDB的首席解决方案架构师Asya Kamsky 最近发表了一篇文章,概括了大规模运行MongoDB需要知道的10件事. MongoDB也需要DevOps.MongoDB是一个数据库.和任何其他的数据存储一样,它也需要容量计划.调整.监控和维护.不要因为它很容易安装.入门,同时与关系型数据库相比能够更加自然地满足开发人员的范例就认为MongoDB不需要适当的照顾和喂养.开发时它能在小样本数据集上超快地运行并不意味着你就不需要良好的模式.索引策略以及产品环境所需要的正确的硬

10件事还原CIA绝密文件泄露事件真相

本文讲的是10件事还原CIA绝密文件泄露事件真相,本周二(3月7日),维基解密曝光了8761份据称是美国中央情报局(CIA)网络攻击活动的秘密文件,这些数据代号为"Vault 7",文件揭示了CIA入侵iPhone.Android手机.智能电视以及Windows.Mac和Linux操作系统的强大能力. 据悉,Vault 7还只是"元年(Year Zero)"泄漏系列的一部分,维基解密将在接下来几天公布新的文件.Vault 7是记录美国中央情报局(CIA)秘密攻击活动

[转载] Flash开发者需要知道的10件事

来源:http://www.infoq.com/cn/news/2010/02/Flash-ten-things 此前,我们发布的新闻谈到了每个Flex开发者需要知道的10件事,本文将继续这个主题,谈谈每个Flash开发者需要知道的10件事. 近日John Lindquist谈到了在为Roundarch公司招聘Flash/Flex开发人员时的一些感受.他认为最难的地方在于问什么问题才能最好地了解到应聘者的Flash /Flex开发技能.因此,他给出了一个列表并说到:"根据我的经验,通过这个列表能