ArangoDB 3.12.12.1 介绍与选型指南
介绍 ArangoDB 3.12.12.1:文档、图、键值与全文检索一库多模型的架构与 AQL、集群拓扑、快速上手示例,量化对比 Neo4j、MongoDB、OrientDB,并说明 BUSL-1.1 许可现状与选型建议。
ArangoDB 3.12.12.1 介绍与选型指南
本文为 A1 认知篇(软件介绍与选型指南),全部信息来自官方公开资料溯源(官网、官方文档、官方代码仓库发行记录),不含本地安装与实测数据。文末附官方来源清单。
一、信息基准
1.1 查询基准
- 查询日期:2026-10-18。
- 版本依据:ArangoDB 3.12.12.1(官方仓库发行记录时间 2026-09-29),为查询时点官方最新稳定版;3.11 旧线仍在维护(3.11.14.6,2026-09-29)。
- 许可现状:自 2024 年 3 月发布版本起,ArangoDB 自管版本采用 Business Source License 1.1(BUSL-1.1),官方 LICENSE 文件载明 Change Date 为发布日起 4 周年、Change License 为 Apache-2.0;此前版本(3.11 及更早)为 Apache-2.0。
1.2 官方来源清单
| 来源 | 说明 | 链接 |
|---|---|---|
| 官网 | 产品主页与下载入口 | https://arangodb.com/ |
| 官方文档(3.12) | 架构、AQL、部署权威文档 | https://docs.arangodb.com/3.12/ |
| 官方代码仓库 | 版本发行记录(v3.12.12.1) | https://github.com/arangodb/arangodb |
| 仓库 LICENSE 文件 | BUSL-1.1 许可与转换条款原文 | https://github.com/arangodb/arangodb/blob/devel/LICENSE |
| Kubernetes Operator | 集群编排组件 kube-arangodb | https://arangodb.com/docs/stable/deployment-kubernetes.html |
二、软件概述
ArangoDB 3.12.12.1(查询时点 2026-10-18 的最新稳定版)是一款开源路线的多模型数据库,用一个引擎同时覆盖文档(JSON)、图(顶点/边与遍历)、键值对与全文检索(ArangoSearch)四种数据形态,并提供统一查询语言 AQL(ArangoDB Query Language)。其核心卖点是「一库多模型」:同一份数据既可按文档读写,也可声明边集合后执行图遍历,还能建 ArangoSearch 视图做检索与排序,避免多库之间的数据同步。ArangoDB 提供单机与集群两种部署形态,集群由 Coordinator、DB-Server 与 Agent(Agency,基于 Raft)三类角色组成,支持分片与同步复制。
许可方面需要注意:3.12 线采用 BUSL-1.1,附带「Additional Use Grant」——允许企业内部生产使用,但不得将其作为向第三方提供数据库服务的商业产品对外提供;每个版本在 Change Date(发布日 4 周年)后自动转为 Apache-2.0。
三、核心架构
3.1 多模型数据组织
- 集合(Collection):文档集合存放 JSON 文档;边集合(Edge Collection)在文档之外定义
_from/_to两个内部属性,从而构成图。 - 文档以键值文档形态存取即为 KV 用法;图遍历在 AQL 中以边集合或命名图(Named Graph)为入口。
- ArangoSearch 视图(View):对集合建立倒排索引视图,支持分词、排序、近似检索与多条件组合查询。
3.2 存储引擎
3.12 线仅内置 RocksDB 存储引擎(早期版本的 MMFiles 引擎已在 3.7 移除),支持基于日志的持久化、快照备份与 RocksDB 级调参。
3.3 集群拓扑
集群由三类进程组成:Coordinator(接收请求、解析 AQL)、DB-Server(存储分片数据)、Agent(构成 Agency,Raft 协议维护集群配置与拓扑元数据)。数据按集合声明分片数(numberOfShards)水平拆分,分片间可配置同步复制因子(writeConcern 等)。官方提供 kube-arangodb Operator 用于 Kubernetes 上部署与扩缩容。
3.4 AQL 与执行模型
AQL 是声明式语言,支持文档查询、图遍历(OUTBOUND/INBOUND/ANY 与可变深度遍历)、聚合、联接(JOIN)与 ArangoSearch 检索;查询经查询优化器改写后分发到 DB-Server 并行执行。数据库内还支持 Foxx——用 JavaScript 编写并在数据库进程内运行的微服务框架。
四、功能特性
4.1 一库多模型
文档、图、键值、全文检索共用一套存储与查询入口,免除跨库同步与多套运维体系;对「关系复杂又以文档为主」的业务是核心吸引力。
4.2 AQL 统一查询语言
单条 AQL 内可混合图遍历、文档过滤、聚合与联接;支持流式游标、查询资源限制与慢查询管理。
4.3 横向扩展与高可用
集群模式支持分片、同步复制、在线扩缩容与故障自愈(Agency 主导拓扑管理);企业版额外提供 SmartGraphs(按社区切分的图分片)、OneShard(事务强一致的单分片数据库)等能力。
4.4 安全与运维
提供用户/角色权限、TLS、审计(企业版)、加密存储(企业版)、热备份(企业版);社区版覆盖基础认证授权。备份恢复支持 mongodump 风格的 arangodump/arangorestore 与在线备份工具(版本与企业能力以官方文档为准)。
4.5 生态集成
官方驱动覆盖 Java、Go、Python、Node.js、PHP、.NET 等;大数据与流式场景常与 Kafka、Flink 等经连接器/自研同步集成(集成方式以官方与社区连接器文档为准)。
五、快速上手
以下示例引自官方文档(不涉及本地实测)。安装完成(默认端口 8529)后,用官方交互外壳 arangosh 执行:
// 创建集合并插入文档(官方文档 Getting Started 章节)
db._create("users");
db.users.insert({ name: "Alice", age: 30, active: true });
// AQL 文档查询
db._query(`
FOR u IN users
FILTER u.active == true
SORT u.age DESC
LIMIT 10
RETURN u
`).toArray();
图查询:先建边集合,再用 AQL 遍历(官方文档 Graphs / AQL 图遍历章节):
db._createEdgeCollection("knows");
db.knows.insert({ _from: "users/alice", _to: "users/bob", since: 2020 });
db._query(`
FOR v, e, p IN 1..3 OUTBOUND 'users/alice' knows
FILTER v.active == true
RETURN { friend: v.name, hops: LENGTH(p.edges) }
`).toArray();
Web 管理界面内置于数据库服务,浏览器访问 http://<host>:8529 即可(官方文档 Programs: arangod 章节)。官方入门文档:https://docs.arangodb.com/3.12/get-started/ 。
六、适用场景与限制
6.1 适用场景
- 需要同时承载文档业务数据与关系图谱(社交、风控、知识网络、推荐),又不希望引入两套数据库的场景。
- 中小规模集群下的低延迟图遍历与文档混合负载。
- 需要在库内直接做全文检索与组合查询(ArangoSearch)替代独立搜索引擎的轻量方案。
- 以 KV 为主、偶发关系查询的元数据存储。
6.2 限制与注意事项
- 许可限制:3.12 线为 BUSL-1.1,若产品形态是「向第三方提供数据库能力」的云服务化商业输出,该许可构成实质限制;需要 Apache-2.0 时只能选用 3.11 及更早版本,或等待对应版本 Change Date 到期(3.12.0 为 2028 年 3 月)。
- 生态规模:社区体量与第三方集成丰富度低于 Neo4j(纯图)与 MongoDB(文档),复杂问题检索成本更高。
- 集群运维复杂度:Agency/Coordinator/DB-Server 三角色拓扑、分片与同步复制参数需要经验;图分片(SmartGraphs 为企业版功能)下的遍历性能高度依赖数据切分设计。
- 大规模纯图分析场景:超大规模图算法负载仍是 Neo4j 等专业图产品的强项。
七、同类选型对比
7.1 对比对象与版本基准
同为「数据平台」定位的三个对比对象:Neo4j(图数据库)、MongoDB(文档数据库)、OrientDB(多模型数据库)。版本基准(2026-10-18 查询):ArangoDB 3.12.12.1(2026-09-29);Neo4j 5.26.32(官方仓库 releases feed 最新,2026-10 月内);MongoDB 9.0.4(2026-10-14);OrientDB 3.2.57(2026-10-05)。
7.2 量化对比
| 维度 | ArangoDB 3.12.12.1 | Neo4j 5.26.32 | MongoDB 9.0.4 | OrientDB 3.2.57 |
|---|---|---|---|---|
| 开源许可 | BUSL-1.1(Change Date 后转 Apache-2.0;3.11 前为 Apache-2.0) | 社区版 GPLv3;企业版商业许可 | SSPL-1.0(非 OSI 开源认定);企业版商业许可 | Apache-2.0 |
| 最近发版 / stars(2026-10-18) | 2026-09-29;14,284(arangodb/arangodb) | 2026-10(5.26 LTS 持续补丁);17,336(neo4j/neo4j) | 2026-10-14;28,650(mongodb/mongo) | 2026-10-05;4,993(orientechnologies/orientdb) |
| 版本节奏 | 主线 3.12 与旧线 3.11 并行,月度级补丁(含热修 x.y.z.1) | LTS 线高频补丁,另有新版本线并行 | 大版本年度级,补丁高频 | 3.2 单线长期补丁,节奏平缓 |
| 兼容矩阵 | Linux/macOS/Windows 官方安装包;kube-arangodb Operator;Java/Go/Python/Node.js 等官方驱动 | 基于 JVM,Linux/macOS/Windows;官方驱动 Java/JS/Python/Go/.NET 等 | Linux/macOS/Windows 官方包;驱动覆盖面最广 | 基于 JVM,跨平台;Java 生态驱动为主 |
| 模型能力 | 文档+图+KV+全文检索(一库多模型) | 纯图(属性图,Cypher/GQL) | 文档(BSON)+ 聚合管道 + 全文检索(Atlas Search/自管) | 文档+图(多模型,图能力较老) |
(数据来源:各项目官方仓库 LICENSE 与 releases feed、官方文档,均为 2026-10-18 查询。)
7.3 选型建议
一句话建议:需要「文档+图+检索」一体化且以自管部署为主的团队选 ArangoDB(注意 3.12 的 BUSL-1.1 约束);纯图深度分析、图算法生态优先选 Neo4j;通用文档业务与最成熟生态选 MongoDB;仅当维护既有 OrientDB 资产或需要 Apache-2.0 多模型时考虑 OrientDB。
八、参考链接
- 官网:https://arangodb.com/
- 官方文档 3.12:https://docs.arangodb.com/3.12/
- 官方代码仓库与发行记录:https://github.com/arangodb/arangodb
- LICENSE(BUSL-1.1 全文):https://github.com/arangodb/arangodb/blob/devel/LICENSE
- AQL 图遍历文档:https://docs.arangodb.com/3.12/aql/graphs/
- ArangoSearch 文档:https://docs.arangodb.com/3.12/index-and-search/arangosearch/
- Kubernetes 部署(kube-arangodb):https://arangodb.com/docs/stable/deployment-kubernetes.html
- Neo4j 官方仓库:https://github.com/neo4j/neo4j
- MongoDB 官方仓库:https://github.com/mongodb/mongo
- OrientDB 官方仓库:https://github.com/orientechnologies/orientdb