热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

7种图数据库简单比较

1图数据库排名图数据库排名:https:db-engines.comenankinggraph+dbms   2图数据库比较表格初次release20072010201220172


1 图数据库排名
图数据库排名:https://db-engines.com/en/ranking/graph+dbms

 

 

 


2 图数据库比较表格





































































































































初次release2007201020122017201820162017
是否开源社区版开源开源版限制数据库规模开源开源开源开源闭源
是否收费企业版收费webUI管理模块收费企业版收费免费免费免费收费
数据模型graphdoc/graph/kvdoc/graph/kvgraphgraphgraphgraph
实施语言Java/ScalaJavaC/C++/JavascriptJavaJavaGoC++
SQL不支持类SQL不支持不支持不支持不支持类SQL
查询语言cypher  gremlingremlinGraphQLGSQL
是否支持在线备份社区版不支持主主备份主从备份后端框架支持后端框架支持  
存储系统原生原生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]
 

推荐阅读
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 本文深入探讨了NoSQL数据库的四大主要类型:键值对存储、文档存储、列式存储和图数据库。NoSQL(Not Only SQL)是指一系列非关系型数据库系统,它们不依赖于固定模式的数据存储方式,能够灵活处理大规模、高并发的数据需求。键值对存储适用于简单的数据结构;文档存储支持复杂的数据对象;列式存储优化了大数据量的读写性能;而图数据库则擅长处理复杂的关系网络。每种类型的NoSQL数据库都有其独特的优势和应用场景,本文将详细分析它们的特点及应用实例。 ... [详细]
  • HBase在金融大数据迁移中的应用与挑战
    随着最后一台设备的下线,标志着超过10PB的HBase数据迁移项目顺利完成。目前,新的集群已在新机房稳定运行超过两个月,监控数据显示,新集群的查询响应时间显著降低,系统稳定性大幅提升。此外,数据消费的波动也变得更加平滑,整体性能得到了显著优化。 ... [详细]
  • 开发心得:利用 Redis 构建分布式系统的轻量级协调机制
    开发心得:利用 Redis 构建分布式系统的轻量级协调机制 ... [详细]
  • NoSQL数据库,即非关系型数据库,有时也被称作Not Only SQL,是一种区别于传统关系型数据库的管理系统。这类数据库设计用于处理大规模、高并发的数据存储与查询需求,特别适用于需要快速读写大量非结构化或半结构化数据的应用场景。NoSQL数据库通过牺牲部分一致性来换取更高的可扩展性和性能,支持分布式部署,能够有效应对互联网时代的海量数据挑战。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 本文深入解析了 Kubernetes 控制平面(特别是 API 服务器)与集群节点之间的通信机制,并对其通信路径进行了详细分类。旨在帮助用户更好地理解和定制其安装配置,从而增强网络安全性,确保集群的稳定运行。 ... [详细]
  • 在分析和解决 Keepalived VIP 漂移故障的过程中,我们发现主备节点配置如下:主节点 IP 为 172.16.30.31,备份节点 IP 为 172.16.30.32,虚拟 IP 为 172.16.30.10。故障表现为监控系统显示 Keepalived 主节点状态异常,导致 VIP 漂移到备份节点。通过详细检查配置文件和日志,我们发现主节点上的 Keepalived 进程未能正常运行,最终通过优化配置和重启服务解决了该问题。此外,我们还增加了健康检查机制,以提高系统的稳定性和可靠性。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • ButterKnife 是一款用于 Android 开发的注解库,主要用于简化视图和事件绑定。本文详细介绍了 ButterKnife 的基础用法,包括如何通过注解实现字段和方法的绑定,以及在实际项目中的应用示例。此外,文章还提到了截至 2016 年 4 月 29 日,ButterKnife 的最新版本为 8.0.1,为开发者提供了最新的功能和性能优化。 ... [详细]
  • 本文详细介绍了如何安全地手动卸载Exchange Server 2003,以确保系统的稳定性和数据的完整性。根据微软官方支持文档(https://support.microsoft.com/kb833396/zh-cn),在进行卸载操作前,需要特别注意备份重要数据,并遵循一系列严格的步骤,以避免对现有网络环境造成不利影响。此外,文章还提供了详细的故障排除指南,帮助管理员在遇到问题时能够迅速解决,确保整个卸载过程顺利进行。 ... [详细]
  • 在CentOS上部署和配置FreeSWITCH
    在CentOS系统上部署和配置FreeSWITCH的过程涉及多个步骤。本文详细介绍了从源代码安装FreeSWITCH的方法,包括必要的依赖项安装、编译和配置过程。此外,还提供了常见的配置选项和故障排除技巧,帮助用户顺利完成部署并确保系统的稳定运行。 ... [详细]
  • Linux学习精华:程序管理、终端种类与命令帮助获取方法综述 ... [详细]
  • 为何Serverless将成为未来十年的主导技术领域?
    为何Serverless将成为未来十年的主导技术领域? ... [详细]
author-avatar
铁匠他夫人_738
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有