大数据应用 选择SQL还是NoSQL?

  执行大数据[注]项目的企业面对的关键决策之一是使用哪个数据库,SQL还是NoSQL?SQL有着骄人的业绩,庞大的安装基础;而NoSQL正在获得可观的收益,且有很多支持者。我们来看看两位专家对这个问题的看法。

  专家

  ·VoltDB公司首席技术官Ryan Betts表示,SQL已经赢得了大型企业的广泛部署,大数据是它可以支持的另一个领域。

  ·Couchbase公司首席执行官Bob Wiederhold表示,NoSQL是可行的选择,并且从很多方面来看,它是大数据的最佳选择,特别是涉及到可扩展性时。

  SQL经历时间的考验,并仍然在蓬勃发展。

  VoltDB公司首席技术官Ryan Betts

  结构化查询语言(SQL)是经过时间考验的胜利者,它已经主宰了几十年,目前大数据公司和组织(例如谷歌、Facebook、Cloudera和Apache)正在积极投资于SQL。

  在成为主导技术(例如SQL)后,有时候我们很容易忘记其优越性。SQL的独特优势包括:

  1. SQL能够加强与数据的交互,并允许对单个数据库设计提出问题。这是很关键的特征,因为无法交互的数据基本上是没用的,并且,增强的交互性能够带来新的见解、新的问题和更有意义的未来交互。

  2. SQL是标准化的,使用户能够跨系统运用他们的知识,并对第三方附件和工具提供支持。

  3. SQL能够扩展,并且是多功能和经过时间验证的,这能够解决从快写为主导的传输到扫描密集型深入分析等问题。

  4. SQL对数据呈现和存储采用正交形式,一些SQL系统支持JSON和其他结构化对象格式,比NoSQL具有更好的性能和更多功能。

  虽然NoSQL的出现带来了一些影响,但SQL仍然主导着市场,并在大数据领域赢得了很多投资和广泛部署。

  NoSQL的说法很含糊,对于本次讨论,我借用Rick Cattell对NoSQL的定义,即提供简单操作(例如密钥/数值存储)或简单记录和索引,并专注于这些简单操作的横向可扩展性的系统。

  很显然,现在很多新的数据库并不是都一样,认识每种数据库背后的原理以及潜在问题是成功的关键。NoSQL的主要特点使其更适合于特定的问题。例如,图形数据库更适合于数据通过关系组织的情况,而专门的文本搜索系统更适合于需要实时搜索的情况。

  在这里,让我们看看SQL系统的主要优势和差异化功能:

  * SQL可实现交互性。 SQL是一种声明性查询语言。用户说出他们想要什么(例如,显示过去五年三月份期间顶级客户的地理位置),数据库内部就会构件算法并提取请求的结果。相比之下,NoSQL编程创新MapReduce是一种程序性查询技术。在用户提出请求时,MapReduce要求用户不仅说出自己想要什么,而且要求他们陈述如何产生答案。

  这听起来像一个无趣的技术差异,但这很关键,原因在于:首先,声明性SQL查询更容易通过图形化工具以及点击报告构建器来构建。这让分析师、操作员、管理者和其他不具备软件编程能力的员工进行数据库查询;其次,数据库引擎可以利用内部信息来选择最有效的算法。改变数据库的物理布局或数据库,最佳算法仍然能够计算出来。而在程序性系统中,编程人员需要重新访问和重新编程算法,这是非常昂贵且容易出错的过程。

  市场理解这个关键区别。在2010年,谷歌宣布部署SQL来补充MapReduce,主要受内部用户需求所驱动。最近,Facebook发布了 Presto(一种SQL部署)来查询其PB级HDFS集群。根据Facebook表示:“随着我们的仓库增长到PB级,以及我们的需求变化,我们清楚地意识到,我们需要一个提供低延时查询的互动系统。”此外,Cloudera也正在构建Impala—另一个基于HDFS的SQL部署。

  * SQL是标准化的。 虽然供应商有时候会添加自己的语言到SQL界面,但SQL的核心是标准化的,还有其他规格(例如ODBC和JDBC)提供广泛可用的稳定界面到SQL存储。这带来了一个管理和操作工具生态系统,可以在SQL系统之上设计、监控、检查、探索和构建应用程序。

  SQL用户和程序员可用跨多个后端系统重复使用其API和UI知识,减少了应用程序的开发时间。标准化还允许声明性第三方提取、转换、加载(ETL)工具,使企业可以在数据库之间以及跨系统传输数据。

  * SQL可扩展。 认为SQL必须牺牲以获得可扩展性的看法,完全是错误的。如前所述,Facebook创建了一个SQL界面来查询PB级数据。SQL能够非常有效地运行极快的ACID传输。SQL对数据存储和索引提供的抽象[注]化允许跨各种问题和数据集大小的一致使用,让SQL可以跨集群复制数据存储有效地运行。使用 SQL作为界面独立于构建云、规模或HA系统,SQL中并没有什么在阻止和限制容错、高可用性和复制。事实上,所有现代SQL系统支持云友好型横向可扩展性、复制和容错性。

  * SQL支持JSON。 几年前,很多SQL系统增加了XML文档支持。现在,随着JSON成为一种流行的数据交换格式,SQL供应商也纷纷加入了JSON型的支持。基于现在灵活的编程过程和web基础设施的正常运行时间要求,我们很需要结构化数据类型的支持。Oracle 12c、PostgreSQL 9.2、VoltDB和其他支持JSON的数据库,通常具有优于“原生”JSON的性能。

  SQL将继续赢得市场份额,并会继续看到新的投资和部署。NoSQL数据库提供专有查询语言或简单的键值语义,而没有更深层次的技术差异化。现代SQL系统提供可扩展性的同时,还支持更丰富的查询语义,并有庞大的用户安装基础,广泛的生态系统整合和深度企业部署。

  NoSQL更适合大数据应用程序

  Couchbase公司首席执行官Bob Wiederhold

  NoSQL越来越多地被认为是关系型数据库的可行替代品,特别是对于大数据应用程序。此外,无模式数据模型通常更适合于现在捕捉和处理的数据种类和类型。

  当我们谈论NoSQL领域的大数据时,我们指的是从操作数据库读取和写入。不要将操作数据库与分析数据库混淆,这通常会查看大量数据,并从这些数据获取可视性。

  虽然操作数据库的大数据看起来不具有可分析性,但操作数据库通常会存储超大量用户的大型数据集,这些用户经常需要访问数据来实时执行交易。这种数据库的操作规模也解释了NoSQL的关键特性,也就是为什么NoSQL是大数据应用程序的关键的原因。

  NoSQL是可扩展性的关键

  每次技术行业经历硬件发展的根本性转变时,都会出现一个拐点。在数据库领域,从纵向扩展到横向扩展的转变推动了NoSQL的发展。关系型数据库(包括来自甲骨文和IBM的数据库)是纵向扩展。也就是说,它们是集中式、共享一切的技术,只能通过增加更多昂贵的硬件来扩展。

  而NoSQL数据库是分布式横向扩展技术。它们使用了分布式节点集(称为集群)来提供高度弹性扩展功能,让用户可以添加节点来动态处理负载。

  分布式横向扩展的做法通常要比纵向做法更加便宜。商业关系型数据库的授权费用也让人望而却步,因为他们的价格是按每台服务器来计算。另一方面,NoSQL数据库通常是开源技术,按照运行的服务器集群收费,而且价格相对便宜。

  NoSQL是灵活性的关键

  关系型数据库和NoSQL数据模型有很大的不同。关系型模式获取数据,并将数据分配到很多相互关联的表中,这些表通过外键相互应用。

  当用户需要对数据集运行查询时,所需信息需要从多个表中收集(通常涉及数百个企业应用程序),并结合这些信息,再提供给应用程序。同样地,当写入数据时,需要在多个表协调和执行写入。当数据相对较少,并且,数据以较慢速度流入数据库时,关系型数据库通常能够捕捉和存储信息。然而,现在的应用程序通常需要快速写入(和读取)海量数据。

  NoSQL数据库采用非常不同的模式。在其核心,NoSQL数据库其实是“NoREL”,或者说非关系型,这意味着它们没有依赖于表以及表之间的联系,以存储和组织信息。例如,以文档为导向的NoSQL数据库获取你想要存储的数据,并采用JSON格式整合到文档中。每个JSON文档可以被你的应用程序视为一个对象。JSON文档可能会提取跨越25个表的数据,将数据集成到一个文档中。

  聚合这些信息可能会导致信息重复,但由于存储已不再是一个成本问题,数据模型灵活性、发布所产生文档的简便性以及读取和写入性能提高,让这成为不错的选择。

  NoSQL是大数据应用程序的关键

  通过第三方(包括社交媒体网站),数据正变得越来越容易捕捉和访问。这些数据包括:个人用户信息、地理位置数据、用户生产的内容、机器记录数据和传感器产生的数据。企业还可以依赖于大数据来推动其关键任务型应用程序。同时,企业正在转向到NoSQL数据库,因为这种数据库非常适合现在新型的数据类型。

  开发人员想要一个灵活的数据库,可以很容易适应新的数据类型,并且,不会受第三方数据供应商的内容结构变化的影响。大多数新数据是非结构化和半结构化,因此,开发人员也需要能够有效存储这些数据的数据库。然而,关系型数据库采用的严格定义的基于模式的做法让其不可能快速整合新数据类型,并且很不适合于非结构化和半结构化数据。

  总体来说,随着web和移动应用程序的增加、新的趋势、网上消费者行为的转变以及新的数据类型的出现,行业需要能够提供可扩展的灵活的数据库技术来管理和访问数据。NoSQL技术是有效满足这些需求的唯一可行解决方案。

时间: 2024-09-19 07:29:56

大数据应用 选择SQL还是NoSQL?的相关文章

大数据时代如何评价一个NoSQL技术人员 - 产品和技术

大数据时代如何评价一个NoSQL技术人员 发布时间:2012.04.16 14:34 &http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;    来源:CSDN     作者:CSDN 时至今日,"Big data"(大数据)时代的来临已经毋庸置疑,尤其是在电信.金融等行业,几乎已经到了"数据就是业务本身"的地步.这种趋势已经让很多相信数据之力量的企业做出改变. 在大数据技术大会

大数据架构师必读的NoSQL建模技术

从数据建模的角度对NoSQL家族系统做了比较简单的比较,并简要介绍几种常见建模技术. 1.前言 为了适应大数据应用场景的要求,Hadoop以及NoSQL等与传统企业平台完全不同的新兴架构迅速地崛起.而下层技术基础的革命必将影响上层建筑:数据模型和算法.简单地将传统基于第四范式结构化关系型数据库的模型拷贝到新的引擎上,无异于削足适履,不仅增加了大数据应用开发的难度和复杂度,又无法发释放新框架的潜能. 该如何构建基于NoSQL的数据模型?现在能供参考的公开知识积累要么是空虚简单的一句"去规范化&qu

2013大数据趋势:SQL阵营更活跃

大数据在2012"一飞冲天",它将会以一种戏剧性的方式改变数据管理的各个方面.大数据系统已经给机器生成数据管理.连续的ETL.操作型BI.动态数据以及基于云的数据仓库都带来了变化. 随着大数据发展进入2013年,已经没有什么技术能比NoSQL数据库和Hadoop更活跃了,它们都有着更大的提升空间.根据MarketAnalysis.com 2012年的一份报告看,单单是Hadoop MapReduce市场,预计复合年增长率将达到58%,在2018年将达到22亿美元的规模. 不过,NoSQ

大数据:选择适合的存储选项

据国外媒体报道,大数据正全面展开,你的事情是时候参加大数据的"浪潮"中来了. 但是,从哪里开始呢?对于那些服务和提供者来说,每个选择都不简单.虽然起初多种选项似乎令人生畏,不过一旦理解了公司对大数据的目标,你将会感激大数据为企业带来的改变. 在决定实施大数据之后,就会想要决定是在站点存储数据还是在云中.客观看待,实施大数据的目的和现有资源,将会对决定哪种存储选项能更好的满足公司的目标有非常大的帮助.现实的目的实现大数据和现有资源,将会在很长一段时间在决定哪些存储选项将最好地满足贵公司的

批量生成大数据量的SQL脚本

业务逻辑:利用游标从数据库中现有的表数据,查询出部分属性,来插入到目标表中,来在目标表中生成大批量的数据,SQL实现如下: create or replace procedure add_subscription_c(i_count in number,-- i_count输入值为循环插入记录的次数 i_usersegment in varchar2, i_startaccount in number, o_resultcode out number, o_resulstring out var

大数据应用程序最佳选择:SQL还是NoSQL?

执行大数据项目的企业面对的关键决策之一是使用哪个数据库,SQL还是NoSQL?SQL有着骄人的业绩,庞大的安装基础;而NoSQL正在获得可观的收益,且有很多支持者.我们来看看两位专家对这个问题的看法. 专家 ·VoltDB公司首席技术官Ryan Betts表示,SQL已经赢得了大型企业的广泛部署,大数据是它可以支持的另一个领域. ·Couchbase公司首席执行官Bob Wiederhold表示,NoSQL是可行的选择,并且从很多方面来看,它是大数据的最佳选择,特别是涉及到可扩展性时. SQL经

SQL/NoSQL两大阵营激辩:谁更适合大数据

文章讲的是SQL/NoSQL两大阵营激辩:谁更适合大数据,目前,企业在着手推动大数据项目的过程中,经常会遇到这样一个关键性的决策难题--到底该使用哪种数据库方案?经过综合考量,最终的选项往往只剩下SQL与NoSQL两种.SQL具有骄人的业绩以及庞大的安装基础,但NoSQL却能够带来可观的收益并同样拥有不少支持者.在今天的辩论当中,我们将一同听听两大阵营中各位专家的意见. Network World网站主编John Dix专门组织了此次辩论并邀请到多位专家.其中两位参与专家分别是VoltDB公司C

SQL/NoSQL两大阵营激辩:谁更适合大数据

企业在着手推动大数据项目的过程中,经常会遇到这样一个关键性的决策难题--到底该使用哪种数据库方案?经过综合考量,最终的选项往往只剩下SQL与NoSQL两种.SQL具有骄人的业绩以及庞大的安装基础,但NoSQL却能够带来可观的收益并同样拥有不少支持者.在今天的辩论当中,我们将一同听听两大阵营中各位专家的意见. NetworkWorld网站主编JohnDix专门组织了此次辩论并邀请到多位专家.其中两位参与专家分别是VoltDB公司CTORyanBetts和Couchbase公司CEOBobWiede

分析:大数据时代下的存储平台选择

文章讲的是分析:大数据时代下的存储平台选择,大数据是时下最热门的企业IT话题,那么大数据对存储有什么要求呢? 为了解决这个问题,我们首先来分析一下大数据的特点. Gartner对大数据下了一个简洁的定义:"大数据是需要新处理模式才能具有更强的决策力.洞察力和流程优化能力的海量.高增长率和多样化的信息资产." 所以,大数据既包含结构化数据也包括非结构化数据,而且是以数量巨大.变化率高的形式存在. 大数据如此热门的主要原因是因为它能提供可行性的见解.企业通常使用分析应用来提取大数据里的本来