ArangoDB图数据库--总参

Posted 弟中帝

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ArangoDB图数据库--总参相关的知识,希望对你有一定的参考价值。

参考文章:

ArangoDB原生多模型数据库(百科)

ArangoDB官网

ArangoDB数据库入门

arangodb-vs-cassandra   

arangodb-vs-mongodb2

ArangoDB、Neo4j、OrientDB单机性能比较

ArangoDB简单实例介绍

ArangoDB之SQL/AQL-比较

SQL/AQL-比较(官网)

ArangoDB 的使用 -- 安装和配置

ArangoDB 学习笔记(1)入门篇

ArangoDB---存储引擎(RocksDB)

简介:

ArangoDB是一个开源NoSQL数据库,官网:https://www.ArangoDB.org/.

ArangoDB支持灵活的数据模型,比如文档Document、图Graph以及键值对Key-Value存储。ArangoDB同时也是一个高性能的数据库,它使用类SQL查询或javascript扩展来构建高性能应用。

ArangoDB的特性

1)多模型数据库

      可以灵活的使用键值对、文档、图及其组合构建你的数据模型。

2)查询便利

      ArangoDB有类SQL的AQL查询语言,还可以通过REST方式进行查询。

3)可通过JavaScript进行扩展

      无语言范围的限制,可以从前端到后端都使用同一种语言。

4)高性能

      ArangoDB速度极快

5)Foxx - 构建自己的API

      用JavaScript和ArangoDB构建应用,Foxx运行在DB内部,可快速访问数据。

6)空间利用率高

      跟其它文档型数据库相比,ArangoDB占用的存储空间更少,因为ArangoDB是模式自由的元数据模式。

7)简单易用

     ArangoDB可以在几秒内启动运行,同时可使用图形界面来管理你的ArangoDB。

8)多OS支持

     ArangoDB支持Windows、Linux和OSX等操作系统,还支持树莓派。

9)开源且免费

      ArangoDB开源免费,它采用了Apache 2许可证协议。

10)复制

      ArangoDB支持主从集群

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] 

python库

另外大家可以学习下python的aerospike库。

  

# import the module
import aerospike
 
# Configuration for the client
config = {
  \'hosts\': [(\'127.0.0.1\', 3000)]
}
 
# Create a client and connect to the database
client = aerospike.client(config).connect()
 
# Records are addressable via a tuple of (namespace, set, key)
key = (\'test\', \'demo\', \'foo\')
 
# Write a record
client.put(key, {
  \'name\': \'John Doe\',
  \'age\': 32
})
 
# Read a record
(key, metadata, record) = client.get(key)
 
# Close Connection to Cluster
client.close()

  

 性能比较

见 NoSQL 基准对比 Aerospike、Cassandra、Couchbase 和 MongoDB

整体看来 如果是充分利用内存提速的话 要比mongodb好!

 

以上是关于ArangoDB图数据库--总参的主要内容,如果未能解决你的问题,请参考以下文章

使用 ArangoDB,具有 x 个边定义的 1 个命名图与具有 1 个边定义的 x 个命名图之间的实际区别是啥?

图数据库LightGraph测试报告

用python操作和管理ArangoDB

向 ArangoDB 发送请求的正确/安全方式是啥?

一份2018年最新的NoSQL测试报告

ArangoDB集合操作