图数据库选型对比:HugeGraph、JanusGraph、Neo4j
图数据库是NoSQL Database的一种类型,它应用图形理论存储实体之间的关系信息。它应用图形理论存储实体之间的关系信息。最常见例子就是社会网络中人与人之间的关系。关系型数据库用于存储“关系型”数据的效果并不好,其查询复杂、缓慢、超出预期,而图形数据库的独特设计恰恰弥补了这个缺陷。
现在市面上经常有的图库有: Titan、neo4j、OrientDB、JanusGraph、HugeGraph、Trinity、TigerGraph 等。随着业务场景的增多,现在图数据库在市面上变得越来越火爆。
个人因为公司业务需要曾对相关图库进行选型调研,主要工作是对HugeGraph、JanusGraph、Neo4jj 三种图数据库在各个维度进行的分析包括功能和性能方面,现总结一下希望对大家有一定的参考价值。
从性能的方面考虑(涉及到数据量大小、是否为集群等因素)
1、Neo4j:单机性能明显,企业版是集群模式(非分布式)
2、hugegraph:单机性能(rocksdb后端)和neo4j相近甚至较好;同时还可以通过配置存储引擎,适用集群存储可支持大数据超千亿级以上(性能相对单机会有所降低)。
3、 JanusGraph:开源的分布式图数据库,单机性能较差。但是分布式可支持大数据超千亿级以上,和apache下的spark、hbase等结合度高
从功能的完备度、易用性等方面考虑
1、Neo4j:功能比较齐全,但是功能都比较独立。和别的存储引擎耦合性低,不能相互组合使用。有可视化操作系统,简单功能可以实现。支持灾备,支持事务锁等。
2、huegraph:功能支持健最齐全,导入组件支持各种数据源。可视化操作组件 hubble 支持功能齐全,存储后端引擎支持宽泛,能和相关的数据库搭配使用,更适合刚上手的用户。整体上常用算法都进行封装过,易用性强。有HA组件支持灾备,事务方面的支持较弱
3、JanusGraph:功能方面支持(不支持可视化界面、HA灾备)其他相关功能都具备。整体上各功能使用没有hugegraph便捷易用。
分析结果
接下来会从功能的支持方面和性能测试方面对neo4j 、 janusgraph 、hugegraph 图数据库进行详尽的说明,把一些它们的优缺点以表格的形式呈现,话不多说请看下表。