今天给大家分享一个图数据库——ArangoDB,提起图数据库,相信大多数人比较了解的应该要属Neo4J了,因其在国内使用较为广泛,文档资料较为齐全,所以很多企业在技术选型时多采用Neo4J。当然,也有很多的企业选择了ArangoDB,其中不乏BAT这样的大型企业,故而ArangoDB还是有其可用之处。图形数据库在当下流行的知识图谱中应用广泛。
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查询语言(AQL)可用于检索和修改存储在ArangoDB中的数据。
执行查询时的一般工作流程如下所示:
客户端应用程序将AQL查询发送到ArangoDB服务器。查询文本包含ArangoDB编译结果集所需的所有内容
ArangoDB将解析查询,执行并编译结果。如果查询无效或无法执行,服务器将返回客户端可以处理并作出反应的错误。如果查询可以成功执行,服务器会将查询结果(如果有的话)返回给客户端。
AQL主要是一种声明性语言,这意味着查询表达的是应该达到的结果,而不是应该如何实现。AQL的目标是人类可读,因此使用英语的关键词。AQL的另一个设计目标是客户端独立性,这意味着所有客户端的语言和语法都是相同的,无论客户端使用哪种编程语言。AQL的进一步设计目标是支持复杂的查询模式和ArangoDB提供的不同数据模型。
就其目的而言,AQL与结构化查询语言(SQL)类似。AQL支持读取和修改集合数据,不支持数据定义操作,如创建和删除数据库,集合和索引。它是纯数据操纵语言(DML),而不是数据定义语言(DDL)或数据控制语言(DCL)。
即使某些关键字重叠,AQL查询的语法也与SQL不同。尽管如此,对于任何拥有SQL背景的人来说,AQL应该很容易理解。