四分之一个世纪以来,关系型数据库(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数据库,包括了NoSQL数据库的使用技巧和注意事项,需要的朋友参考一下 这些用于大型分布式数据集。关系数据库可以有效地处理一些大数据性能问题,而NoSQL数据库可以轻松解决此类问题。在分析可能存储在云的多个虚拟服务器上的大型非结构化数据时,非常有效。
本文向大家介绍初识NoSQL NoSql数据库入门 NoSql数据库基础知识,包括了初识NoSQL NoSql数据库入门 NoSql数据库基础知识的使用技巧和注意事项,需要的朋友参考一下 做了一年的大一年度项目了,对于关系型数据库结构还是有些了解了,有的时候还是觉得这种二维表不是很顺手。在看过一篇文章之后,对NoSQL有了初步的了解,(https://keen.io/blog/5395834921
NoSQL(Not Only SQL),指的是非关系型的数据库。随着Web2.0的兴起,传统的关系数据库在应付Web2.0网站,特别是超大规模和高并发的SNS类型的Web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。 而Go语言作为21世纪的C语言,对NOSQL的支持也是很好,目前流行的NOSQL主要有redis、mongoD
随着越来越多的数据变为非结构化或半结构化,通过NoSql数据库管理它们的需求也在增加。 Python也可以与与Relational数据库交互的方式类似地与NoSQL数据库交互。 在本章中,我们将使用python与MongoDB作为NoSQL数据库进行交互。 为了连接到MongoDB,python使用一个名为pymongo的库。 您可以使用Anaconda环境中的以下命令将此库添加到python环境
本文向大家介绍NoSQL数据库的分布式算法详解,包括了NoSQL数据库的分布式算法详解的使用技巧和注意事项,需要的朋友参考一下 今天,我们将研究一些分布式策略,比如故障检测中的复制,这些策略用黑体字标出,被分为三段: 数据一致性。NoSQL需要在分布式系统的一致性,容错性和性能,低延迟及高可用之间作出权衡,一般来说,数据一致性是一个必选项,所以这一节主要是关于 数据复制 和 数据恢复 。 数据放置
所有不遵循上节所述的关系模型的数据库统称为 NoSQL 数据库。 NoSQL 数据库一般使用集合代替表,使用文档代替记录。 NoSQL 数据库采用的设计方式使联结变得困难,所以大多数数据库根本不支持这种操作。 对于 之前的关系型数据库,若要列出各用户及其角色,就需要在程序中执行联结操作, 即先读取每个用户的 role_id,再在 roles 表中搜索对应的记录。 NoSQL 数据库更适合设计成如图
本文向大家介绍请介绍一些你了解的数据库优化方法相关面试题,主要包含被问及请介绍一些你了解的数据库优化方法时的应答技巧和注意事项,需要的朋友参考一下 考察点:数据库 (1)选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。 例如,在定义邮政编码
本文向大家介绍请你给一个10岁的孩子解释什么叫数据库。相关面试题,主要包含被问及请你给一个10岁的孩子解释什么叫数据库。时的应答技巧和注意事项,需要的朋友参考一下 数据库就是放数据的仓库,数据是什么,比如你们班级里四十名同学,每个同学都有姓名年龄性别家庭住址等在入校时登记的信息,这就是数据。库就是存放这些信息的一个地方,就像你家里存放玩具的盒子一样。