技术开发 频道

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

  观点二:NoSQL更适合大数据应用程序——Couchbase公司CEO Bob Wiederhold

  目前已经有越来越多的企业开始将NoSQL视为关系型数据库的一种可行性替代方案;特别是在大数据应用程序领域,很多企业用户意识到规模化操作的实际表现要优于标准化集群与商用服务器所带来的效果。除此之外,采用无模式化数据模型往往更适合当下各类不同数据的捕捉与处理工作。

NoSQL更适合大数据应用程序

  在NoSQL领域讨论大数据话题时,我们主要针对的是操作型数据库当中的读取与写入流程——也就是指人们在日常在线事务处理过程中所涉及的交互任务(例如利用大数据指导在线航班预定)。操作型数据库与分析型数据库有所不同,前者一般需要打理大量数据并收集数据当中所蕴含的分析结论(例如利用大数据分析特定某一天会有多少乘客预定某次航班)。

  不过对于操作型数据库中的大数据而言,其设计主旨并非围绕分析性工作所展开;操作型数据库通常需要为无数用户提供庞大的数据集,帮助他们进行持续性数据访问并进行实时事务处理。用于操作并管理大数据内容的此类数据库都具备庞大的规模,这也解释了NoSQL特性的重要意义及其在大数据应用程序中扮演核心角色的原因。

  * NoSQL是实现可扩展性的关键所在

  技术行业在每一次迎来硬件发展的根本性转变时,都必然经历过渡拐点。在数据库领域,这种由向上扩展转为向外扩展架构的转变也成为推动NoSQL快速成长的主要因素。关系型数据库,其中包括由甲骨文及IBM等巨头所打造的具体方案,专注于解决向上扩展难题。也就是说,它们采取集中式、全局共享技术,只能通过添加价格更为昂贵的硬件设备满足扩展需求。

  与之相反,NoSQL数据库从设计思路上就考虑到了分布式特性,属于彻头彻尾声的向外扩展技术。它们利用一系列分布式节点(构成一套整体集群)来提供具备卓越弹性的扩展能力,从而帮助用户随意添加更多节点以应对持续增加的工作负载。

  分布式向外扩展方案往往还会带来低于向上扩展机制的使用成本。后者属于一整套庞大、复杂、具备容错性机制的服务器体系,因此无论是设计、建造还是后期支持都会带来高昂的成本支出。商用关系型数据库的许可成本同样不容忽视,因为其计费策略以单一服务器为基本单位。在另一方面,NoSQL数据库则通常属于开源项目,以服务器集群为整体计费单位、价格也相比较低。

  * NoSQL是实现灵活性的关键所在

  关系型与NoSQL数据模型可谓完全不同。关系型模型需要将数据拆分成包含行与列的多个关联性表,这些表通过同样保存在列中的外键实现相互引用。

  当用户需要对一组数据进行查询时,所需信息必须由多个表中收集获得——通常涉及数百种当下常用的企业应用程序——并将其加以整合,而后才能交付终端应用。与之相似,在写入数据时、写入流程需要加以协调并在执行过程中面向多个表。当数据量相对较小、向数据库内导入的速度并不太快的情况下,关系型数据库通常具备捕捉并存储信息的能力。不过目前的应用程序通常需要处理海量数据的读取与写入操作、且要求以近实时方式完成,这就超出了操作型数据库的能力范围。

  NoSQL数据库采取的模式则完全不同。从核心角度看,NoSQL数据库真正实现了“NoREL”、也就是非关系型,也就是说此类方案在保存并整理信息的过程中并不依赖于表以及各个表之间的关系。举例来说,一套面向文档的NoSQL数据库会首先获取到我们需要的数据,而后将其整合成采用JSON格式的文档。每个JSON文档都可以被视为能供应用程序使用的对象。JSON文档可以把原本需要25个关系型数据库表才能存放的数据保存在同一行当中,并将其整理为单一文档/对象。

  信息汇总工作可能导致信息内容出现重复,不过由于目前存储资源已经不再属于主要成本来源,因此这类数据模型能够带来更出色的灵活性、便于高效分配由此产生的文档并改进读取与写入操作的性能表现、从而提升Web应用程序的替代性效果。

  * NoSQL是支撑大数据应用的关键所在

  时至今日,我们已经能够愈发便捷地通过第三方环境、包括社交媒体网站对数据进行捕捉与访问。个人用户信息、地理位置数据、用户产生的内容、设备登录数据以及传感器数据等只是这股风潮当中的少数典型代表,数据来源清单正在不断拓展。同时,企业也越来越依赖大数据技术的力量、旨在驱动其关键性业务应用。总体而言,各企业已经开始向NoSQL伸出橄榄枝,因为这类方案是惟一能够适应当前新兴数据类型的处理手段。

  开发人员需要一套更为灵活、能够轻松适应最新数据类型的数据库方案,从而避免破坏第三方数据供应商所提供的内容结构调整。大部分新型数据属于非结构化或者半结构化类型,因此开发人员还需要自己的数据库有能力高效对其加以保存。遗憾的是,关系型数据库所采取的严格定义、以模式为基础的设计思路令我们无法快速接纳全新数据类型,自然也难以适应非结构化及半结构化数据。NoSQL带来的数据模型则能够更好地与其实际需求加以映射。

  总体来说,随着Web与移动应用程序的不断普及、新兴趋势的推波助澜外加面向在线消费者行为与新型数据类别的转变,业界中的各类流程方案都渴望着一种能够为数据的管理及访问带来可扩展性与灵活性的数据库技术。在这样的背景下,NoSQL技术正是能够有效满足上述需求的惟一解决方案。

  原文链接:What's better for your big data application, SQL or NoSQL?

1
相关文章