ArangoDB简介:选型角度

1,289 阅读4分钟
  1. 图数据库发展史(分久必合)

image.png

  1. Arango多模场景

image.png

解决问题

  1. 存储成本高,开发复杂度高,运维成本高
  2. 不同数据库之间的事务难以保证
  3. 多个数据源造成应用功能脆弱
  1. 指标对比

➀ 图数据库场景下指标

数据库名称首次release是否开源开发语言查询语言Scheme主数据库模型图模型支持集群ACID事务查询类型相关文档
ArangoDB2012C++AQL多模型LPG复制 +分片支持OLTP
AllegroGraph2004-SPARQL图模型RDF复制支持支持OLTP-
Amazon Neptune2017-Gremlin图模型LPG/RDF复制支持支持OLAP/OLTP-
Neo4j2007JavaCypher无+可选图模型LPG复制支持支持OLAP/OLTP
OrientDB2010Java类SQL,无join多模型LPG复制 + 分片支持OLTP

对比分析

  • 在图领域来看,Neo4j有较大优势,原因:1)Cypher语言使用比AQL更友好,执行效率高;2)Neo4j可以支持OLAP场景,而ArangoDB在OLAP场景下难以支撑。
  • 国内企业使用ArangoDB较少,可参考的指标有限,除了官方文档,参考资料较少。

➁ 多模数据库对比

Ⓐ Google Trends热度对比

Ⓑ 基础指标对比

对比指标ArangoDBOrientDBVirtuoso
主数据库模型Document storeGraph DBMSKey-value storeSearch engineDocument storeGraph DBMSKey-value storeSearch engineDocument storeGraph DBMSNative XML DBMSRelational DBMSRDF storeSearch engine
DB-Engines 各模型排名Score5.65Rank#71 Overall#11 Document stores#4 Graph DBMS#11 Key-value stores#9 Search enginesScore5.07Rank#78 Overall#13 Document stores#5 Graph DBMS#12 Key-value storesScore5.67Rank#70 Overall#10 Document stores#3 Graph DBMS#2 Native XML DBMS#39 Relational DBMS#2 RDF stores#8 Search engines
最初发布时间201220101998
最近发布时间3.7.9, March 20213.1.9, February 202108.03.3316, March 2020
支持的操作系统LinuxOS XWindowsAll OS with a Java JDK (>= JDK 6)AIXFreeBSDHP-UXLinuxOS XSolarisWindows
支持SQL查询noSQL-like query language, no joinsyes
支持访问方式AQLFoxx FrameworkGraph API (Gremlin)GraphQL query languageHTTP APIJava & SpringDataJSON style queriesVelocyPack/VelocyStreamGremlinJava APIRESTful HTTP/JSON APIADO.NETGeoSPARQLHTTP APIJDBCJena RDF APIODBCOLE DBRDF4J APIRESTful HTTP APISesame REST HTTP ProtocolSOAP webservicesSPARQL 1.1WebDAVXPathXQueryXSLT
支持服务端语言C#C++ClojureElixirGoJavaJavaScript (Node.js)PHPPythonRRust.NetCC#C++ClojureJavaJavaScriptJavaScript (Node.js)PHPPythonRubyScala.NetCC#C++JavaJavaScriptPerlPHPPythonRubyVisual Basic
一致性支持Eventual ConsistencyImmediate ConsistencyOneShard (highly available, fault-tolerant deployment mode with ACID semantics)Immediate Consistency
支持事务ACIDACIDACID

分析对比【成本】

  • 从多模领域来看,Virtuoso、ArangoDB、OrientDB从DB-Engines与google trends在排名与搜索热度都处于同一阶段,Virtuoso支持的模型、搜索热度及排名相比其他两者略微占优。但是ArangoDB和OrientDB提交代码活跃度比Virtuoso更高,所以总体而言三者相差不大
  • 相比单个领域数据库,如KV存储、文档存储、图存储,多模数据库能融合处理能力,将多种模型数据的操作管理需求下沉到数据库系统,使得应用在效率、成本、体验上可以获得非常明显的提升。

Ⓒ 性能场景(来自Arango官方)

  1. 与MongoDB,Neo4j,OrientDB, PostGres性能对比

近邻节点及多近邻节点遍历性能对比图

对比分析【图核心算法】

在处理读取、写入、同步写入、聚合、最短路径、获取近邻节点与属性及内存使用上,ArangoDB都比较占优。但是由于测试数据来自ArangoDB官方,我们可以观察OrientDB与Neo4j相关的数据信息。

  1. 与mysql性能对比
  • 测试结果

  • 读写速度

  • 基础监控

分析对比【读写速度 + 基础监控 指标

  • 三种场景下,mysql与ArangoDB的查询性能基本持平
  • 在创建订单场景下,ArangoDB表现优于Mysql,可以得出ArangoDB在写多读多的场景下相对占优
  • 从CPU、MEM平均使用率来看,mysql在可靠性、稳定性上比ArangoDB更有优势

➂ 总结

  1. ArangoDB在图场景下整体表现不如Neo4j,但是性能表现有一定优势
  2. ArangoDB读写速率,特别在读多写多的场景下,性能可以持平甚至超过mysql
  3. ArangoDB的可靠性、稳定性方向表现有一定的不足,需要在不同场景下测试后给出结论