Neo4j Vs JanusGraph Vs Tigergraph
做知识图谱的一般需要用图数据库存储及检索,相对更加的直观化。记得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等
相关文章