ArangoDB原生多模型数据库

科普中国-科学百科 2018-02-13

  ArangoDB是一个原生多模型数据库,兼有key/value键/值对、graph图和document文档数据模型,提供了涵盖三种数据模型的统一的数据库查询语言,并允许在单个查询中混合使用三种模型。基于其本地集成多模型特性,您可以搭建高性能程序,并且这三种数据模型均支持水平扩展。

  原生与Layered 的对比

  许多数据库公司自称“多模型”,但是只是基于key/value键/值或者document文档存储graph图数据,与原生多模型数据库存在着重要的区别。以下将对ArangoDB本地集成多模型数据库的具体细节和一系列核心优势进行介绍。

  ArangoDB原生多模型数据库,采用了试用于所有数据模型的统一内核和统一数据库查询语言。因此,用户可以在单次查询过程中混合使用多种模型。ArangoDB在执行查询过程时,无需在不同数据模型间相互“切换”,也不需要执行数据传输过程。与“layer-approaches”相比,ArangoDB在速度和性能方面都具有极大优势,因此适用于高性能领域需求。12

  ArangoDB 数据库模型Document 文档

  您可以在文档中存储海量数据(文件大小默认最大值为32MB,但可以根据实际需要进行配置)。ArangoDB功能强大,应用范围广泛,可用于查询和处理诸如JOINs、辅助索引或ACID事物之类的文档。您还可以在JOIN连接上实现水平扩展。

  key/value 键/值

  每个document文档里均有唯一的键和与其对应的值(键/值对)。如果您在document文件中存储一个值,那么ArangoDB可用作经典的、高度可扩展的键/值对存储,例如用户在电子商务平台上将商品临时存储在购物车里或物联网应用程序中的传感数据等。

  Graph 图

  ArangoDB包含了graph图形存储的完整功能集。例如模式匹配、最短路径、完全遍历等。与当前许多主流的图形处理方法相比,ArangoDB可以快速执行图形查询。以下具体介绍如何实现这一改进:

  当使用ArangoDB存储graph图时,一种特殊类型的文档将会被创建用来表示其边和顶点。这些文档包含指向所连接文档的_to和_from属性(地址属性),因此在查询过程中,可以通过关联上述属性创建和使用边缘索引,实现图的高性能处理和查询。

  ArangoDB数据库的独特之处在于如下两个方面:其一是这些边和顶点都包含复杂数据(嵌套属性),其二是所有的graph函数均被深入集成至我们的查询语言AQL中。这两个特征使得ArangoDB在性能上能与其他graph数据库一较高低。此外,ArangoDB还支持对graph图搭建数据库集群。3

  适用场景

  原生多模型数据库的优势主要体现在以下三方面:

  在开发新项目过程需要保持灵活性时

  在开发新产品或者新服务时,您可能不知道在这个过程中将会出现哪些需求。产品的改动或对新特性的需求均会导致数据模型的改变。使用多模型数据库,您可以游刃有余地应对数据模型的变化。您可以将一项技术应用到多个方案中,而不需要重新学习另外一项新的技术、建立新的技术栈。

  在团队合作进行软件开发的过程中

  ArangoDB允许团队之间交互合作。比如一个团队使用ArangoDB的document数据库,可以将其积攒的经验和技术分享给另外一个使用graph的团队。两个团队可以通过相互交换ArangoDB的使用经验来优化数据库使用效果。这样一方面可以减少学习时间、加深团队合作,另一方面可以减少研发时间。

  在将不同数据模型统一于一种查询中

  ArangoDB的真正强大之处在于允许在单次查询中混合使用三种不同的模型,而不需要建立两到三个技术栈、在不同的单一模型数据库之间建立具有一定风险性的连接,也不需要从头开始学习新的数据库技术。ArangoDB旨在使模块化开发应用程序变得更加容易。4

  ArangoDB 的独特优势合并

  多模型数据库能够适用于许多不同的用例。因此它能够最小化后台部件。这样有助于降低总拥有成本,增加灵活性,并整合您的整体技术堆栈需求。

  简化性能扩展

  应用程序都是一步步逐渐成熟。使用ArangoDB可以使架构中的不同组件便可以进行独立扩展。ArangoDB支持垂直和水平扩展来满足您不断增加的需求。如果您对性能的需求降低,您也可以优化后台系统,这样还可以节省硬件消耗和运营成本。

  降低操作复杂度

  Polyglot Persistence 的目的是为项目选择最适合的工具。只安装单一模型的数据库软件会让您在运行过程中遇到很多挑战。集成这些解决方案本身就是一项复杂的任务,但是创建一个具有不同数据库之间一致数据的大型内聚系统,并且包含容错机制是无法实现的。在数据方面,Polyglot Persistence 更多的是为某一项工作配置其所需的合理的数据模型。原生多模型数据库支持多种数据(合理的数据与数据模型的配对)并且不含Polyglot Persistence 的复杂性。除此之外,ArangoDB还能够确保ACID事务处理的一致性,以及有效提升您的应用软件的容错率。

  强大的数据一致性

  如果在您的应用程序内没有更高级别的事务处理功能,那么它就不能支持在不同数据库系统之间的事务处理功能。因此,保持不同模型之间的高度一致性是非常困难的。用单一后台来管理不同的数据模型,您可以轻松实现ACID。ArangoDB已经可以确保单实例下的高度一致性和集群模式下的原子性。 ArangoDB的 3.x版本也将会为集群模式提供高度的一致性(MVCC)。

  容错性

  与其他组件一起构建一个容错系统是一项具有挑战性的任务。在集群模式下尤为困难。对上述系统的搭建和维护需要包含不同技术和技术栈深厚的专业知识。将原本设计为独立运行的多项子系统合并到一起更是会增加工程和运营成本。然而在一个如ArangoDB这样的的可扩展多模型数据库里这些问题都不会出现。这也是ArangoDB 为什么能够使得先进的拥有不同数据模型的模块化架构得以正常运行,并且也可以应用到集群模式下的原因。

  降低总体拥有成本

  使用不同的数据库技术会增加很多关于硬件,软件,以及与系统运营相关的成本开支。每个数据库技术都需要持续的维护,补丁,错误修复和由供应商提供的其它修改。每个新的更新都必须由专门的团队进行测试,其与当前系统整体是否兼容。使用多模型数据库可以有效地减少这些成本开支。

  事务处理

  对多台机器提供事务处理保障是非常具有挑战性的,而且几乎所有的NoSQL数据库都不提供这些保障。而ArangoDB原生多模型数据库则会要求事务处理始终确保数据都存储在数据库中。ArangoDB已经可以确保单实例下的高度一致性和集群模式下的原子性。ArangoDB的3.x版本也将会为集群模式提供事务 (MVCC)。5

  本词条内容贡献者为:

  张磊 - 副教授 - 西南大学

责任编辑:科普云

上一篇:OU1600金属厚度测量仪

下一篇:主程序

科普中国APP 科普中国微信 科普中国微博
科普中国-科学百科
是中国科协为深入推进科普信息化建设而塑造的全新品牌,旨在以科普内容建设为重点,充分依托现有的传播渠道和平台,使科普信息化建设与传统科普深度融合,以公众关注度作为项目精准评估的标准,提升国家科普公共服务水平。

猜你喜欢