作者:铁匠他夫人_738 | 来源:互联网 | 2023-08-18 13:49
1图数据库排名图数据库排名:https:db-engines.comenankinggraph+dbms 2图数据库比较表格初次release20072010201220172
1 图数据库排名
图数据库排名:https://db-engines.com/en/ranking/graph+dbms
2 图数据库比较表格
初次release |
2007 |
2010 |
2012 |
2017 |
2018 |
2016 |
2017 |
是否开源 |
社区版开源 |
开源版限制数据库规模 |
开源 |
开源 |
开源 |
开源 |
闭源 |
是否收费 |
企业版收费 |
webUI管理模块收费 |
企业版收费 |
免费 |
免费 |
免费 |
收费 |
数据模型 |
graph |
doc/graph/kv |
doc/graph/kv |
graph |
graph |
graph |
graph |
实施语言 |
Java/Scala |
Java |
C/C++/Javascript |
Java |
Java |
Go |
C++ |
SQL |
不支持 |
类SQL |
不支持 |
不支持 |
不支持 |
不支持 |
类SQL |
查询语言 |
cypher |
|
|
gremlin |
gremlin |
GraphQL |
GSQL |
是否支持在线备份 |
社区版不支持 |
主主备份 |
主从备份 |
后端框架支持 |
后端框架支持 |
|
|
存储系统 |
原生 |
原生 |
RockDB |
Cassanda Hbase
|
Cassanda Hbase
|
原生 |
|
分布式 |
企业版支持 |
后期支持 |
后期支持 |
原生支持 |
原生支持 |
原生支持 |
支持 |
应用场景 |
人工智能、欺诈检测、知识图谱等场景 |
|
|
云服务商、具备技术能力深厚的厂商 |
互联网大规模数据场景,网络安全、金融风控、广告推荐、知识图谱等 |
|
|
相关文档 |
非常多
|
多
|
多 |
少 |
少 |
少 |
中 |
文档地址 |
|
|
|
|
|
https://dgraph.io/docs/ |
http://docs.tigergraph.com.cn/ |
3 各种图数据库属性
3.1 Neo4j(主流)
历史悠久,且长期处于图数据库领域的龙头地位,主流。
缺点:企业版付费。开源的社区版本只支持单机,不支持分布式。
3.2 OrientDB(不推荐)
OrientDB是第二代分布式图数据库,以混合数据模型为特点,它包括可以在最复杂的场景中使用复制和分片,并以Apache2许可证提供开放源代码。ORIENTDB工作速度快,能够在最常见的硬件上每秒存储220000条记录,并且支持无模式、完整和混合模式,可以使用SQL作为查询语言之一。ORIENTDB使用身份验证、密码和静态数据加密等方式为所有机密数据提供安全保护。OrientDB为确保更好的性能,最近引入了节点的快速重新同步,即使处理数十亿条记录,遍历速度也不会受到影响。
OrientDB 是分布式多模型数据库,支持图数据模型,支持 sharding 机制,大规模查询情况下性能比较好;
缺点:它们起步比较早,最初的时候都是一个单机的图数据库,然后随着用户数据量的不断增加,后期增加了分布式模式,支持集群和副本,但是经过调研发现,可能是由于后加的功能,他们的分布式支持的不是很好。OrientDB因为是商用版,所以没怎么用过,虽然有社区版本,但是没有Neo4j好用。
3.3 ArangoDB(不推荐)
Arangodb以一种非常创造性和灵活的方式安排数据。数据可以存储为键或值对、图或文档,所有这些都可以通过一种查询语言访问。为了更安全的选择,查询中可以使用声明性模型。用户可以在一个查询中组合不同的模型及其特性的原因是,ArangoDB对所有数据模型都使用相同的核心和相同的查询语言。
Arangodb独特的特性是它能够在一个查询中组合不同的数据模型。这使得其展示方式令人印象深刻且美观。它比其他数据库具有更灵活的扩展性、增强的容错性、大容量的存储能力和更低的成本。arangodb最突出的特性是foxx,这是一个用于编写数据库中以数据为中心的Javascript框架。
它们起步比较早,最初的时候都是一个单机的图数据库,然后随着用户数据量的不断增加,后期增加了分布式模式,支持集群和副本,但是经过调研发现,可能是由于后加的功能,他们的分布式支持的不是很好。
3.4 JanusGraph(推荐)
- JanusGraph是可扩展的图数据库,底层依赖于大数据组件,所以可以很好的和企业的大数据平台进行结合,并且能够支持实时图遍历和分析查询。对分布式支持的非常好,也都是完全的开源免费,存储数据模型也都是专为图数据而设计。JanusGraph 使用 NoSQL (如 Cassandra+ES) 来构建图数据库,用 Cassandra 来存储图片,用 Elasticsearch/Solr 构建索引引擎。
优点:JanusGraph的存储系统依赖于像Cassandra、HBase(HBase又依赖于Zookeeper和HDFS)、BerkelyDB等等这样的存储系统,索引系统依赖于Elasticsearch、Solr、Lucene等等;也基于这些原因,它和大数据生态结合的非常好,可以很好地和Spark结合做一些大型的图计算。
缺点:但是存储需要依赖于其他存储系统,例如JanusGraph多数使用HBase作为底层存储系统,而HBase又依赖于Zookeeper和HDFS,另外JanusGraph的索引又依赖于ES,所以想要搭建一套完整的JanusGraph,需要同时搭建维护好几套系统,维护成本非常大.从设计之初就考虑了分布式和扩展性,就是它的维护成本会非常高,依赖于这么多的外部系统,搭建一套JanusGraph系统的同时需要搭建好几套依赖系统;另一方面就是稳定性,根据经验来看,系统越复杂,依赖系统越多,整体可控性就越差,稳定性风险就越大。JanusGraph是开源的分布式图数据库,可以用于企业级的应用服务,但是开源的性能上要比付费的差很多,并且三方的一些工具也存在一些问题,所以要用肯定要低于底层(读写)进行性能优化,所以目前国内宣传的大部分自家的分布式图数据库基本上都是从JanusGraph优化而来的。
3.5 HugeGraph(推荐)
百度基于JanusGraph开源了HugeGraph,增加了很多特性,提高了易用性及性能,增加了一些图分析算法。HugeGraph百度在2018年中旬开源的一款图数据库(Graph Database)系统,可以存储海量的顶点(Vertex)和边(Edge)。实现了Apache ThinkerPop 3框架,支持Gremlin图查询语言。HugeGraph支持多用户并行操作,用户可输入Gremlin查询语句,并及时得到图查询结果。也可以再用户程序中调用hugeGraph API进行图分析或查询。
3.6 Dgraph(推荐)
上,他们发展的比较晚,从设计之初就考虑了分布式和扩展性,所以对分布式支持的非常好,也都是完全的开源免费,存储数据模型也都是专为图数据而设计。他们有一个比较大的区别就是,而
优点:Dgraph 不依赖与任何第三方系统,只有一个 Dgraph 可执行文件,只需在启动时通过参数指定是 Zero(管理节点)还是 Alpha(数据节点)即可,Dgraph 会自动组成集群,运维部署非常简单。Dgraph使用自身的存储系统,这就造成了前面提到的运维成本的问题。而Dgraph这些都是原生支持的,所以相对来说,Dgraph维护成本低很多。Dgraph 和 JanusGraph 性能差不多,但复杂查询下,Dgraph 性能远高于 JanusGraph。同时,Dgraph 的写入性能也整体高于 janusGraph.
缺点:比如还不支持多重边、一个集群只支持一个图、与大数据生态兼容不足等,这些都需要靠后期不断完善
3.7 TigerGraph(不推荐)
优点:TigerGraph可以通过GSQL实现类存储过程的算法封装,而且已经实现了很多图算法,但是语法结构要比Neo4j复杂的多。
缺点:目前就已知的情况来说,会买付费的图数据库的公司不多,毕竟每一家的付费都挺贵的,Neo4j按照cpu收费,TigerGraph按照数据容量(G)来收费,其他的也是license授权收费,反正都不便宜,所以未来的趋势还是趋向于免费,除非是那种必须的
4 选型结论
- 推荐一:Neo4j使用起来相当的方便,入门门槛很低,基本上拿来就能用,并且有很好的社区支持,三方库、第三方工具的支持,社区版本也可以支撑到不错的数据量(亿级没问题),如果只是玩玩练练手熟悉一下,Neo4j肯定是最好的选择。
- 推荐二:Dgraph。 JanusGraph 和 Dgraph 是对分布式支持比较好的,因为它们从设计之初就是按分布式架构设计的,并且是完全开源免费的,所以我们主要对这两款图数据库进行了详细的评测对比。Dgraph 除了运维成本低之外,整体读写性能也优于 JanusGraph
- 推荐三:JanusGraph或HugeGraph
参考资料
[1] 贝壳找房—【图数据库系列】之 JanusGraph VS Dgraph:贝壳分布式图数据库技术选型之路 https://www.6aiq.com/article/1586913224622
[2]