图数据库调研

embedded/2024/12/29 22:59:38/

下面介绍几种流行的图数据库,看了好多文章得到的一些建议。

1. ‌Neo4j‌:(推荐)
这是一款开源的图数据库管理系统,广泛应用于社交网络、推荐引擎和知识图谱等领域。Neo4j以其高性能的图处理能力和灵活的图数据模型著称,支持ACID事务,并提供强大的查询语言Cypher。其高效的图结构存储方式和广泛的社区支持使其成为许多企业和开发者的首选。
历史悠久且长期处于图数据库领域的主力地位,其功能强大,性能也不错,单节点的服务器可承载上亿级的节点和关系。社区版最多支持 320 亿个节点、320 亿个关系和 640 亿个属性。
优点:Neo4j有自己的后端存储,不必如同JanusGraph等一样还要依赖另外的数据库存储。 Neo4j在每个节点中存储了每个边的指针,因而遍历时效率相当高。
缺点:企业版付费。开源的社区版本只支持单机,不支持分布式。社区版只能部署成单实例,企业版可以部署成高可用集群,从而可以解决高并发量的问题;不能做集群,单个实例故障时影响系统正常运行。社区版只支持冷备份,即需要停止服务后才能进行备份。
‌Amazon Neptune‌:这是亚马逊提供的完全托管的图数据库服务,支持property graph和RDF两种图模型。Neptune支持Apache TinkerPop Gremlin和SPARQL查询语言,具有高度可扩展性和可靠性。 更详细的可以参考这篇文章/官网!
添加链接描述

2. ‌ArangoDB‌:(不推荐)

	这是一款多模型NoSQL数据库,支持文档、键值和图形数据模型。ArangoDB提供了灵活的数据处理能力和高效的查询性能,适用于需要多种数据模型的应用场景。Arangodb以一种非常创造性和灵活的方式安排数据。数据可以存储为键或值对、图或文档,所有这些都可以通过一种查询语言访问。为了更安全的选择,查询中可以使用声明性模型。用户可以在一个查询中组合不同的模型及其特性的原因是,ArangoDB对所有数据模型都使用相同的核心和相同的查询语言。优点:Arangodb独特的特性是它能够在一个查询中组合不同的数据模型。这使得其展示方式令人印象深刻且美观。它比其他数据库具有更灵活的扩展性、增强的容错性、大容量的存储能力和更低的成本。arangodb最突出的特性是foxx,这是一个用于编写数据库中以数据为中心的javascript框架。缺点:它们起步比较早,最初的时候都是一个单机的图数据库,然后随着用户数据量的不断增加,后期增加了分布式模式,支持集群和副本,但是经过调研发现,可能是由于后加的功能,他们的分布式支持的不是很好。 更详细的可以参考这篇文章/官网![添加链接描述](https://www.gingerdoc.com/arangodb/arangodb_quick_guide)

3. TigerGraph‌:

	TigerGraph是一款高性能的图数据库,专为实时图分析设计。它支持复杂的图形处理和大规模并发操作,适用于金融风控、网络安全等领域。更详细的可以参考这篇文章/官网![添加链接描述](https://cn-doc.graphtiger.com/introduction-and-overview/tigergraph-platform-overview)

4. ‌JanusGraph‌:(不推荐)

	JanusGraph是一个可扩展的图数据库,支持多种存储后端和查询语言。它适用于需要高度可定制和复杂图形处理的应用场景。JanusGraph是可扩展的图数据库,底层依赖于大数据组件,对分布式支持的非常好,也都是完全的开源免费,存储数据模型也都是专为图数据而设计。JanusGraph基于Titan发展而来,包含其所有功能,采用Tikerpop的Gremlin图查询语言,有单独的后端存储,支持Cassandra/HBase/BerkeleyDB等做存储,支持Solr/ES/Lucence等做图索引 支持Spark GraphX/Giraph等图分析计算引擎及Hadoop分布式计算框架 原生支持集成了Tinkerpop系列组件:Gremlin查询语言,Gremlin-Server及Gremlin applications。 采用很友好的Apache2.0协议,支持对接可视化组件如Cytoscape,Gephi plugin for Apache TinkerPop,Graphexp,KeyLines by Cambridge Intelligence,Linkurious优点:JanusGraph的存储系统依赖于像Cassandra、HBase(HBase又依赖于Zookeeper和HDFS)、BerkelyDB等等这样的存储系统,索引系统依赖于Elasticsearch、Solr、Lucene等等;也基于这些原因,它和大数据生态结合的非常好,可以很好地和Spark结合做一些大型的图计算。所以可以很好的和spark的大数据平台进行结合,并且能够支持实时图遍历和分析查询缺点:其存储需要依赖于其他存储系统,JanusGraph使用HBase作为底层存储系统,而HBase又依赖于Zookeeper和HDFS,另外JanusGraph的索引又依赖于ES,所以想要搭建一套完整的JanusGraph,需要同时搭建维护好几套系统,维护成本非常大。另一问题就是稳定性,根据经验来看,系统越复杂,依赖系统越多,整体可控性就越差,稳定性风险就越大。并且三方的一些工具也存在一些问题,所以要用肯定要基于底层(读写)进行性能优化。

5. ‌NebulaGraph‌:

	NebulaGraph是一个分布式图数据库,支持全对称分布式集群和类SQL查询语言。它适用于社交关系网络、金融风控等领域。

6. ‌HugeGraph‌:
HugeGraph是一款开源图数据库,由百度安全团队研发,主要用于反欺诈、威胁情报分析等安全相关应用。
百度基于JanusGraph开源了HugeGraph,增加了很多特性,提高了易用性及性能,增加了一些图分析算法。实现了Apache ThinkerPop 3框架,支持Gremlin图查询语言。HugeGraph支持多用户并行操作,输入Gremlin查询语句,并及时得到图查询结果。也可以再用户程序中调用hugeGraph API进行图分析或查询。
优点:HugeGraph可以与Spark GraphX进行链接,借助Spark GraphX图分析算法(如PageRank、Connected Components、Triangle Count等)对HugeGraph的数据进行分析挖掘。HugeGraph还针对图数据库的高频应用(例如:ShortestPath、k-out、k-neighbor等)做了特定性能优化,并且为用户提供更为高效的使用体验
缺点:基于JanusGraph开源,存在和JanusGraph同样的问题,维护成本高。

8. ‌GeaBase‌:

	GeaBase是蚂蚁金服研发的高性能图数据库,支持风险控制、反洗钱、金融案件审理等业务。

9. ‌TuGraph‌:

	TuGraph是一个图数据库产品,广泛应用于大规模图数据分析。

http://www.ppmy.cn/embedded/145366.html

相关文章

JavaScrip面向对象-继承与原型链

JavaScript中的类与对象 继承 原型链 当取值触发get操作,当前对象无,去原型对象查找,如果原型对象没找到,就去原型对象的原型对象查找,一直找下去,所有的原型会形成链条叫原型链 Object的原型 object原…

Oracle PL/SQL编程中批量数据处理Sparse Collections and SQL%BULK_EXCEPTIONS

在讨论稀疏集合(Sparse Collections)和SQL%BULK_EXCEPTIONS时,我们实际上是在探讨Oracle数据库PL/SQL编程中的两个重要概念。这两个概念通常与批量数据处理相关,特别是当需要高效地处理大量数据时。下面将分别解释这两个概念&…

JVM专栏-类加载器和双亲委派机制

JVM专栏-类加载器和双亲委派机制 前言:在面试中,我们常被问及JVM调优经验、JVM内存区域知识以及常用的JVM调优命令。对于资深开发者而言,对JVM的不熟悉可能会影响高薪工作的获取。此外,JVM知识对于排查生产环境中的死锁、内存溢出、内存泄漏等问题至关重要。本系列旨在从基础到…

uni-app 个人课程表页面

uni-app 个人课程表页面 插件参考地址 大部分代码都是参考了上述代码&#xff0c;只对代码做出了优化 1. 页面模板 在 schedule.vue 文件中&#xff0c;编写页面结构&#xff1a; <template><view><u-navbar title"个人中心"><view class&q…

CCF编程能力等级认证GESP—C++5级—20241207

CCF编程能力等级认证GESP—C5级—20241207 单选题&#xff08;每题 2 分&#xff0c;共 30 分&#xff09;判断题&#xff08;每题 2 分&#xff0c;共 20 分&#xff09;编程题 (每题 25 分&#xff0c;共 50 分)奇妙数字武器强化 单选题&#xff08;每题 2 分&#xff0c;共 …

Android 异形屏设备设置沉浸式界面

Android 异形屏设备设置沉浸式界面 问题 由于业务需要&#xff0c;应用需要配置沉浸式界面&#xff0c;但设置全屏时&#xff0c;会遇到异形屏采用传统的全屏设置模式无效问题。 解决方案 Android P版本提供参数layoutInDisplayCutoutMode供实现沉浸式设置。layoutInDispl…

第六届新生程序设计竞赛—正式赛(C语言)

A:完全平方数 一个正整数a是一个完全平方数&#xff0c;是指它是某一个整数的平方&#xff0c;即存在一个整数b&#xff0c;使得a b b。 现在给出一个区间[m,n]&#xff0c;统计在该区间中有多少个完全平方数&#xff1f; 输入 单组输入。 输入两个正整数m和n&#xff0c;1&l…

OpenCV实验篇:识别图片颜色并绘制轮廓

第三篇&#xff1a;识别图片颜色并绘制轮廓 1. 实验原理 颜色识别的原理&#xff1a; 颜色在图像处理中通常使用 HSV 空间来表示。 HSV 空间是基于人类视觉系统的一种颜色模型&#xff0c;其中&#xff1a; H&#xff08;Hue&#xff09;&#xff1a;色调&#xff0c;表示颜色…