Neo4j Vs JanusGraph Vs Tigergraph_从neo4j,tigergraph,nebula这三个技术开源社区的数据中,对这三个技术的“社区活跃_lawenliu的博客-程序员宝宝

技术标签: TigerGraph  HugeGraph  neo4j  图数据库  JanusGraph  

做知识图谱的一般需要用图数据库存储及检索,相对更加的直观化。记得2年前做教育方向用到过Neo4j,速度的确是慢。目前比较流行的Neo4j、JanusGraph、TigerGraph等,JanusGraph是开源的,在腾讯和百度都有用。收集了一下几种Graph数据库的对比,从容量、性能、查询能力、分析能力、开源生态等方面考虑:

1. 容量

目前是大数据时代,随便一个公司都会有很多的数据产生,之前公司一个语音评测系统,每天都有3亿条提交。这么大的数据量,做分析和存储都是需要考虑容量的。

  • Neo4j:支持数据高可能的HA集群,但不是分布式存储;
  • TigerGraph:自称是原生的并行图;
  • JanusGraph:可以接HBase及ScyllaDb等NoSQL作为后端存储,在存储层面上是分布式的,容量比较大;百度基于JanusGraph开源了HugeGraph,增加了很多特性,提高了易用性及性能,增加了一些图分析算法

2. 性能

如果需要图查询及分析计算执行的比较快,一般需要关注底层架构,原生图存储是基于点和边,计算中不需要过多的逻辑及物理层转换。

  • Neo4j:原生图
  • TigerGraph:原生图
  • JanusGraph:非原生图

3. 查询

图数据库要有点关系的检索能力,比如两点之间的所有路径、最短路径、多维度查询等等都是必不可少的。差异性主要是性能。普通图数据库查询3度及以上通常性能很低,而我们实际上经常要查6度关系,TigerGraph自己针对Twitter的大图数据库的测试报告性能很好,只有TigerGraph完成了6度关系查询

4. 分析计算能力

图数据库如果仅具备存储和查询能力,则还需要依赖于外部的GraphX等计算引擎完成一些图算法分析,在数据传输和图表达上都存在这转换浪费。TigerGraph可以通过GSQL实现类存储过程的算法封装,而且已经实现了很多图算法,但是语法结构要比Neo4j复杂的多。

5. 开源生态

开源生态决定很多公司会不会采用或者进行改造。

  • JanusGraph/HugeGraph:基于Apache协议开源,开放性好;
  • Neo4j:社区开源,非商业免费,商业版支持HA集群,并不是完全分布式,使用最广泛
  • TigerGraph:不开源,开发者版支持单机单用户单图非商业免费,不支持DynamicSchemaChange等

参考地址:LiveToolkit

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lwc5411117/article/details/106862314

智能推荐

jQuery on(绑定事件)前别忘了off(移除事件)_jquery on 之前off_愤怒的小青春的博客-程序员宝宝

废话不多说直接上代码,用到的自己运行看效果<!DOCTYPE html><html><head> <title></title></head><body> <button id="add-event-more">叠加绑定SayHello事件<

基于Unity的2D像素风闯关游戏Demo——SunnyLand_m_studio sunny land_TheBug114514的博客-程序员宝宝

文章目录前言一、制作画面截图二、游戏实机画面总结前言此Demo根据B站[email protected]_Studio的教程制作一、制作画面截图二、游戏实机画面总结这个Demo主要用于熟悉Unity引擎与运行原理,BUG很多,很多地方也比较乱。Github项目文件下载...

Java 最常见的 208 道面试题:第十一模块答案 Spring Boot / Spring Cloud_香草天空Sky的博客-程序员宝宝

104. 什么是 spring boot?在Spring框架这个大家族中,产生了很多衍生框架,比如 Spring、SpringMvc框架等,Spring的核心内容在于控制反转(IOC)和依赖注入(DI),所谓控制反转并非是一种技术,而是一种思想,在操作方面是指在spring配置文件中创建<bean>,依赖注入即为由spring容器为应用程序的某个对象提供资源,比如 引用对象、...

八D锁存器74HC573中文资料_573锁存器真值表_helenxu001的博客-程序员宝宝

74HC573特点: ·三态总线驱动输出 ·置数全并行存取 ·缓冲控制输入 ·使能输入有改善抗扰度的滞后作用  原理说明: M54HC563/74HC563/M54HC573/74HC573的八个锁存器都是透明的D 型锁存器,当使能(G)为高时,Q 输出 将随数据(D)输入而变。当使能为低时,输出将锁存在已建立的数据电平上。输出控制不影响锁存器的内部工作,即老数据可

netstat查看端口、进程占用_史凯力的博客-程序员宝宝

【阅读文章申明】作者只是想把自己实践中的经验分享给大家,如果文章里面有在大神面前显的很低级的知识点。那么大神你可以不看,请不要发一些“浪费流量”“辣鸡”之类嘲讽的话,这也不是交流的一种方式。每一篇文章都是作者自己。截图,编辑,排版制作出来的,我相信CSDN的所有UP都和我一样。人都是在不断学习不断进步。如果文章你觉得辣鸡,请你绕道别装逼,大家已经过了装逼的年龄了。netstat -n端口网络连接情况netstat -v正在工作的端口经常使用到的-N和-Vnetstat -a查看

Android之Remote Service_明潮的博客-程序员宝宝

简述:Remote service can be accessed by other application,otherwise, it can only be accessed by your own application.应用场景:公共的服务,比如友盟之类的推送服务,只需要起一个进程,所有app共享,节省系统资源,还能提高推送存活率。<service android:n...

随便推点

Linux(Redhat)的简单操作_王同学要加油。的博客-程序员宝宝

关于Linux(Redhat)的简单操作目录关于Linux的简单应用 11.目录和文件管理 11.1 Linux的文件类型和目录结构 11.2 Linux文件和目录的操作 21.3链接文件 42.用户和群组账户管理 51.1Linux用户的创建。 61.2群组账户 71.3用户和群组账户的维护 73.权限和所有者。 8关于Linux的简单应用作者:王汉添摘要:本文重在讲解Linux系统中的目录和文件管理、用户和群组账户管理、权限和所有者,先对我们.

进程、线程、协程、goroutine区别_slagsea的博客-程序员宝宝

        在golang开发的过程中相信大家最经常接触的就是go协程,但对于什么是协程以及什么是go协程,可能还停留在go出去的就是协程这个表面认知,这不仅会给我们项目带来隐藏的问题。对此,结合一些资料,从操作系统的角度来对进程,线程,协程进行介绍,并试着说明协程和goruntine是什么。一、概念理解  1、进程        进程是具有一定独立功能的程序关于某个数据集合上的一...

用JAVA程序操作MySQL数据库_java操作mysql数据库_张海玲的博客-程序员宝宝

基本要求1.JAVA与MySQL数据库进行连接,必须安装好JDK和MySQL,这部分是最基础的,已经安装好就不做过多赘述。 2.添加JDBC驱动程序包 mysql-connector-java-5.1.44.zip(这个是最新版本),然后将其解压到任意目录,我解压到的是E盘,然后将其目录下的mysql-connector-java-5.1.44-bin.jar添加到classpath里面...

DLLs in Symbian OS 60 Developer Platform 2.0(转)_cuankuangzhong6373的博客-程序员宝宝

在 Symbian OS 60 Developer Platform 2.0 中存在两种类型的DLL,它们可以使开发者实现代码重用,并且提高应用程序的执行效率。DLL 可以方便的把功能封装在可重用的模块中。在提高运行效率的同时,...

IDEA的一些玄学问题_summeblace的博客-程序员宝宝

IDEA的一些玄学问题前言玄学问题一、IDEA下载文件找不到二、resource资源文件的xml找不到三、mybaits在使用(Mapper.方法名)找不到Mapper四、重载java与数据库类型转化方法时出现的注册不上的问题总结前言当很多人看到这个标题的时候,是不是感觉到匪夷所思啊!其实并不是。用IDEA的小伙伴应该都遇到过代码正确,但是怎么跑也跑不通,用别人的文件来自己这里跑,一跑就通,然后之后自己相同的代码也跑的畅通无阻,简直了!!!我记录一下我遇到的IDEA的玄学问题,会持续更新,遇到什么写什么

推荐文章

热门文章

相关标签