当前位置: 首页 > 软件库 > 数据库相关 > 图数据库 >

ArangoDB

高性能 NoSQL 多模型数据库
授权协议 Apache
开发语言 C/C++ JavaScript
所属分类 数据库相关、 图数据库
软件类型 开源软件
地区 不详
投 递 者 何睿范
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

ArangoDB 是一个开源的分布式原生多模型数据库 (Apache 2 license)。

  理念  

利用一个引擎,一个 query 语法,一项数据库技术,以及多个数据模型,来最大力度满足项目的灵活性,简化技术堆栈,简化数据库运维,降低运营成本。

ArangoDB原生多模型数据库,指的是兼有图 (graph)、文档 (document)和键/值对 (key/value) 三种数据模型存储软件。其快捷灵活之处在于,它有适用于全部三种数据模型的统一内核和统一数据库查询语言——AQL (ArangoDB Query Language)。其可以涵盖全部三种数据模型,还允许在单个查询中混合使用三种数据模型。

因此,用户可以在单次查询过程中混合使用多种数据模型,而无需在不同数据模型间相互“切换”,也不需要执行数据传输过程。并且这三种数据模型均支持水平扩展。基于其本地集成多模型特性,ArangoDB 原生多模型数据库适用于搭建高性能应用程序。

  特性  

  • 多数据模型:可以灵活的使用 document, graph, key-value 或者他们的组合作为你的数据模型

  • 方便的查询:支持类似 SQL 的查询语法 AQL,或者通过 REST 以及其他查询

  • Ruby 和 JS 扩展:没有语言范围限制,你可以从前台到后台都使用同一种语言

  • 高性能以及低空间占用:ArangoDB 比其他 NoSQL 都要快,同时占用的空间更小

  • 简单易用:可以在几秒内启动并且使用,同时可以通过图形界面来管理你的 ArangoDB

  • 开源且免费:ArangoDB 遵守 Apache 协议

Graph 图

ArangoDB 图形存储(graph)包含完整功能集,例如模式匹配、最短路径、完全遍历等。与当前许多主流的图形处理方法相比,ArangoDB 可以快速执行图形查询。以下具体介绍如何实现这一改进:当使用 ArangoDB 存储graph图时,一种特殊类型的文档将会被创建用来表示其边和顶点。这些文档包含指向所连接文档的 _to 和 _from 属性(地址属性),因此在查询过程中,可以通过关联上述属性创建和使用边缘索引,实现图的高性能处理和查询。图形存储的独特之处在于如下两个方面:其一是这些边和顶点都包含复杂数据(嵌套属性),其二是所有的 graph 函数均被深入集成至其唯一的查询语言 AQL 中。此外,ArangoDB 的graph图还支持搭建数据库集群。

Document 文档

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

key/value 键/值

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

  教程  

  • 驱动程序教程--新手初级 | 中文 | 免费

                                    

  • Graph 图数据库入门教程--新手初级 | 最新版

            

  • Performance AQL 检索提速教程--新手初级 | 最新版

        

  • 为数据建模 ArangoDB vs MongoDB--新手初级 | 免费

        

  • Document CRUD (创建,读取,更新,删除)--新手初级 | AQL | HTTP API | 免费

        

 文档 Documentation 

  • 类型转换函数 TO_BOOL() TO_BOOL(value) →bool value(any): 任意类型输入参数 returnsbool(boolean): null不能转换 Numbers可以转换,0为false Strings非空为true,否则为false Arrays非空为true,否则为false Objects/documents通常转换为true 也可以使用双重否定进行转换 TO

  • 条件匹配 匹配文档 到目前为止,我们要么查找单个文档,要么返回整个字符集合。对于查找,我们使用了DOCUMENT()函数,这意味着我们只能通过它们的key或ID来查找文档。 为了实现更复杂的查询,AQL提供了FILTER操作,它使我们能够为文档制定任意条件来匹配。 平等条件 FOR c IN Characters FILTER c.name == "Ned" RETURN c 过滤条件如下所示:“

 相关资料
  • 问题内容: 您将如何构建Cloud Firestore数据库。 我收藏了团队,竞技场和游戏: 在游戏中,团队可以是主队也可以是客队,而游戏始终具有竞技场。 因此,目前我的想法是将所有比赛都纳入“游戏”收藏夹,当我想查找某个团队的所有游戏时,我需要查询“游戏”收藏夹并查找所有选定球队是主队还是客队的比赛。 我应该在Firestore生成的ID处引用团队吗?还是应该输入团队名称?我可以从中获得更多关于

  • 本文向大家介绍NoSQL数据库,包括了NoSQL数据库的使用技巧和注意事项,需要的朋友参考一下 这些用于大型分布式数据集。关系数据库可以有效地处理一些大数据性能问题,而NoSQL数据库可以轻松解决此类问题。在分析可能存储在云的多个虚拟服务器上的大型非结构化数据时,非常有效。

  • 问题内容: 我需要一些想法来实现Java的(真正)高性能内存数据库/存储机制。在存储20,000+个Java对象的范围内,每5秒钟左右更新一次。 我愿意接受的一些选择: 纯JDBC /数据库组合 JDO JPA / ORM /数据库组合 对象数据库 其他存储机制 我最好的选择是什么?你有什么经验? 编辑:我还需要能够查询这些对象 问题答案: 您可以尝试使用Prevayler之类的工具(基本上是一个

  • 本文向大家介绍初识NoSQL NoSql数据库入门 NoSql数据库基础知识,包括了初识NoSQL NoSql数据库入门 NoSql数据库基础知识的使用技巧和注意事项,需要的朋友参考一下 做了一年的大一年度项目了,对于关系型数据库结构还是有些了解了,有的时候还是觉得这种二维表不是很顺手。在看过一篇文章之后,对NoSQL有了初步的了解,(https://keen.io/blog/5395834921

  • 问题内容: 我在公司中多次设计数据库。为了提高数据库的性能,我只寻找标准化和索引。 如果要求您提高数据库的性能,该数据库包含大约250个表以及一些具有数百万个记录的表,那么您将寻找什么不同的东西? 提前致谢。 问题答案: 优化逻辑设计 逻辑级别是关于查询和表本身的结构。首先尝试最大程度地发挥这一作用。目标是在逻辑级别上访问尽可能少的数据。 拥有最高效的SQL查询 设计支持应用程序需求的逻辑架构(例

  • 本文向大家介绍NoSQL反模式 - 文档数据库篇,包括了NoSQL反模式 - 文档数据库篇的使用技巧和注意事项,需要的朋友参考一下 我们设计关系数据库Schema的都有一套完整的方案,而NoSQL却没有这些。半年前笔者读了本《SQL反模式》的书,觉得非常好。就开始留意,对于NoSQL是否也有反模式?好的反模式可以在我们设计Schema告诉哪里是陷阱和悬崖。NoSQL宣传的时候往往宣称是Schema

  • 我是Cassandra数据建模的新手,如果可能的话,我需要在单行中容纳多维数据(是的,我知道Cassandra是柱状存储)。我的示例数据集(试图简化我的用例,忍受我的格式化) 时间戳、交易id、项目代码、用户id、支付方式 20130304221518,abcd,3,6,信用卡 20130304221519,efgh,4,5,现金配送 20130305180402,ijkl,4,5,现金交付 例如

  • 我正在研究一个基于代理的流行病模型。这个想法是单个代理根据他们在网络中观察到的情况(基于距离)做出决定。我在每个代理中都有几个功能,可以动态更新受感染接触者的数量,接触者表现出特定行为等。 下面的代码用于计算代理网络中受感染的联系人。 至少还有3个这样的函数可以保持表示代理网络中其他功能的其他代理的计数。现在,当我 有没有一种计算效率更高的方法来跟踪更大人口的网络统计数据?