四分之一个世纪以来,关系型数据库(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)通常也允许没有太多限制的创建新列。 结果是,应用或者数据库模式的改变不需要作为一个复杂的变更单元进行管理。理论上讲,这允许应用可以更快的迭代,当然,很清楚的一点是,如果应用不能保证数据的完整性这可能带来不良的副作用 NoSQL5大挑战 NoSQL数据库的前景很被看好,但是要应用到主流的企业还有许多困难需要克服。这里是几个首先要解决的问题。 1:完备 RDBMS系统已经存在很长时间了。而NoSQL的拥护者认为存在时间的增长是它退化的信号。但是对大多数CIO来说RDBMS是稳定的。多数情况下,RDBMS系统是稳定且多功能的。相比较而言,大多数NoSQL产品的一些关键组件还有待实现。 大多数的开发者都渴望生活在科技的前沿,但是企业却必须小心谨慎。 2:支持 企业要保证,如果一个关键系统崩溃,他们能够得到及时的有支持。所有RDBM提供商都付出很大的力量用以朝代高水平的企业支持。 相比之下,大部分NoSQL系统都是开源项目,尽管每一个NoSQL数据库通常都有一家或多家公司提供支持,但这些公司通常是小公司,缺少全球影响力,支持资源和像Oracle,Microsoft,或者IBM一样的信誉。 3:数据分析和商业智能 为了满足流行的Web2.0应用对可扩展的要求,NoSQL数据库应运而生。因而,它们的功能集都是顷向于为这些应用服务。但是在Web应用增删改查的业务中产生的数据具有商业价值。从这些数据库中挖掘潜在的商业信息提高企业的效率和竞争力以及商业智能(BI)对所有企业来讲都是IT所面昨的关键的问题。 NoSQL数据库缺少即席查询和数据分析工具。即便一个简单的查询都需要专业的编程技能,并且传统的BI工具不提供对NoSQL的连接。 HIVE和PIG是为解决这个问题而出现的,他们提供了更方便的数据访问方式,可以访问存储在Hadoop集群上的数据甚至其他NoSQL数据库。QuestSoftware已经开发了一个云数据库产品—Toad—可以为多种NoSQL提供即席查询能力。 4:管理 NoSQL的设计目标可能是零管理方案,对现实离这一目标太远。目前NoSQL的安装和维护都需要掌握技术。 5:专业性 熟悉关系数据库概念和编程的开发者遍布全球各领域,但是几乎每一个非关系数据库的开发者都仍然处在学习当中。随着时间推移,这种情况当然会被解决,但是现在而言,找一个关系数据库的开发人员或者是管理人员,显然更加容易 总结 NoSQL数据库正在成为数据库领域中越来越重要的组成部分,如果得到正确的使用,它将会带来真正的益处。然而,对于企业来说,使用NoSQL数据库的时候应当时刻注意相关法律问题。