科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道SQL和NoSQL在大数据时代都有大空间

SQL和NoSQL在大数据时代都有大空间

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

大数据的热潮使非关系型数据库NoSQL近两年收到了更多人的关注,有人还提出NoSQL将主导未来的大数据分析领域。事实上,两者从根本上说就是互补的关系,未来双方都会有很大的发展空间。

来源:ZDNet软件频道【原创】 2012年4月18日

关键字: CAP SQL NoSQL BASE ACID 云计算 大数据

  • 评论
  • 分享微博
  • 分享邮件

ZDNet至顶网软件频道评论 (文/蒋湘辉)

大数据的热潮使非关系型数据库NoSQL近两年收到了更多人的关注,有人还提出NoSQL将主导未来的大数据分析领域。事实上,两者从根本上说就是互补的关系,未来双方在大数据和云计算时代都会有很大发展空间。

CAP理论印证SQL和NoSQL的互补性

在2000年的PODC(Principles of Distributed Computing)会议上,加州伯克利的计算机教授Eric Brewer提出了著名的CAP猜想。2002年,麻省理工学院的Seth Gilbert和Nancy Lynch证明了这一猜想,形成了CAP理论。CAP理论指的是:Consistency(一致性)、Availability(可用性)、Tolerance to network Partitions(分区容错性),任何分布式系统只可能同时满足二点,没法三者兼顾。架构师不要将精力浪费在如何设计能满足三者的完美分布式系统,而是应该进行取舍。

大数据的竞赛是长跑

从应用而言,除了满足CA性能传统关系型数据库(RDBMS)30多年来得到长足发展外,满足AP和CP性能的CouchDB和谷歌的BigTable等应用在近几年也都发展很快。

BigTable发展于 2004年,现在成为高效、可扩展、用来储存或更改资料的谷歌文件系统。Google Reader、Google Maps、Google Book Search、"My Search History"、 Google Earth、Blogger.com、Google Code hosting、Orkut、YouTube以及Gmail等都应用了BigTable。BigTable作为非关系型数据库的产品,虽然不支持JOIN这样 的SQL语法,但其优势在于扩展性和性能。

CouchDB是用Erlang开发的面向文档的数据库系统,其数据存储方式有点类似lucene的index文件格式,CouchDB最大的意义在于它是一个面向Web应用的新一代存储系统,事实上,CouchDB的口号就是:下一代的Web应用存储系统。

传统关系型数据库适合私有云建设

关系型(SQL)分布式数据库的理论基础是ACID模型。ACID是Atomicity(原子性), Consistency(一致性), Isolation(隔离性), and  Durability(持久性)的缩写。事务的原子性(Atomicity)是指事务中包含的所有操作要么全做,要么全不做(all or none)。一致性(Consistency)是指在事务开始以前,数据库处于一致性的状态,事务结束后,数据库也必须处于一致性状态。事务隔离性( Isolation)要求系统必须保证事务不受其他并发执行的事务的影响,也即要达到这样一种效果: 对于任何一对事务T1 和 T2,在事务 T1 看来,T2 要么在 T1 开始之前已经结束,要么在 T1 完成之后才开始执行。这样,每个事务都感觉不到系统中有其他事务在并发地执行。 而持久性(Durability)是指一个事务一旦成功完成,它对数据库的改变必须是永久的,即便是在系统遇到故障的情况下 也不会丢失。数据的重要性决定了事务持久性的重要性。

通过SQL数据库的ACID可以知道传统的关系型数据库因为通用性设计带来了性能上的限制,但可以通过集群提供较强的横向扩展能力,其较强的并发读写能力、数据强一致性保障、很强的结构化查询与复杂分析能力和标准的数据访问接口非常适合企业私有云数据库平台的建设。

包括甲骨文Oracle数据库、IBM DB2和微软SQL Server、SAP Sybase在内的主流关系型数据库产品已经发展了二三十年,产品非常成熟,但在性能和伸缩性上仍有可发展和增强的空间。2012年甲骨文的Oracle 12c、IBM的DB2 10和微软的SQL Server 2012都将是非常值得期待的数据库产品。

NoSQL适合特定的应用领域

和关系型(SQL)分布式数据库的ACID理论基础相对,(NoSQL)分布式数据库的理论基础是BASE模型(ACID和BASE在化学中分别有“酸”和“碱”的含义)。

BASE来自于互联网的电子商务领域的实践,它是基于CAP理论逐步演化而来,核心思想是即便不能达到强一致性(Strong consistency),但可以根据应用特点采用适当的方式来达到最终一致性(Eventual consistency)的效果。2002年来自eBay的DanPritchett 在《BASE: An Acid Alternative》文章中正式提出了BASE概念。

BASE是Basically Available、Soft state、Eventually consistent三个词组的简写,是对CAP中CA应用的延伸。BASE的含义包括: Basically Available:基本可用;Softstate:软状态/柔性事务,即状态可以有一段时间的不同步;Eventual  consistency:最终一致性; BASE是反ACID的,它完全不同于ACID模型,牺牲强一致性,获得基本可用性和柔性可靠性并要求达到最终一致性。

从NoSQL的理论基础可以知道,非关系型数据库具有很强的弹性和扩展能力,但在数据一致性方面需要应用层保障。结构化查询统计能力也较弱,一般存在较多限制。但NoSQL在特定的应用领域有很大的发展空间。近两年很热的Hadoop与MapReduce就是传统SQL数据库的一个有益补充。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章