跳转到主要内容

图数据库对比

<%= wordcount(post.content) %> <%= min2read(post.content) %> <%= totalcount(site) %>

图数据库的对比

图数据库是否分布式开发语言支持的节点数量原生图存储multi_model查询语言支持开发的语言开发公司落地的公司是否开源使用场景开源地址文档地址
neo4j社区单机版/商业是伪分布式java百亿cypherjava/pythonneo4j使用非常广泛OLAP
nebula graph分布式java千亿个nsqljava京东 /360/携程/oppo/各种银行OLAPhttps://github.com/vesoft-inc/nebula-graph
ultipa分布式北京同心尚科技发展有限公司金融行业HTAP
janusgraph分布式javagremlinjavaThe Linux Foundationapache顶级项目OLAPhttps://github.com/JanusGraph/janusgraphhttps://docs.janusgraph.org/
hugegraph分布式javagremlinjava百度百度OLAPhttps://github.com/hugegraph/hugegraph
tugraph分布式C++cypherC++费马科技京东金融、 搜狗 、国家电网OLAPwget https://fma-ai.cn/download/lgraph_latest.tarhttps://fma-ai.cn/help/
tigergraph单机开发/商业是分布式C++万亿GSQLtighergraph国家电网、国有银行OLTPhttps://www.tigergraph.com.cn/
geagraph

JanusGraph

JanusGraph是一个可扩展的图数据库,可以把包含数千亿个顶点和边的图存储在多机集群上。它支持事务,支持数千用户实时、并发访问存储在其中的图。

anusGraph是2016年12月27日从Titan fork出来的一个分支 (1)分布式部署,因此,支持集群。 (2)可以存储大图,比如包含数千亿Vertices和edges的图。 (3)支持数千用户实时、并发访问。(并发访问肯定是实时的,这个唉,没必要强调好像) (4)集群节点可以线性扩展,以支持更大的图和更多的并发访问用户。(Elastic and linear scalability for a growing data and user base) (5)数据分布式存储,并且每一份数据都有多个副本,因此,有更好的计算性能和容错性。(Data distribution and replication for performance and fault tolerance) (6)支持在多个数据中心做高可用,支持热备份。(Elastic and linear scalability for a growing data and user base) (7)支持各种后端存储系统,目前标准支持以下四种,当然也可以增加第三方的存储系统: Apache Cassandra® Apache HBase® Google Cloud Bigtable Oracle BerkeleyDB (8)通过集成大数据平台,比如Apache Spark、Apache Giraph、Apache Hadoop等,支持全局图数据分析、报表、ETL (9)支持geo(Gene Expression Omnibus,基因数据分析)、numeric range(这个的含义不清楚) (10)集成ElasticSearch、Apache Solr、Apache Lucene等系统后,可以支持全文搜索。 (11) 原生集成Apache TinkerPop图技术栈,包括Gremlin graph query language、Gremlin graph server、Gremin applications。 (12)开源,基于Apache 2 Licence。 (13)通过使用以下系统可以可视化存储在JanusGraph中的图数据: Cytoscape Gephi plugin for Apache TinkerPop Graphexp KeyLines by Cambridge Intelligence Linkurious

avatar

java语言开发,不支持python语言

  1. 性能 要求图查询及图分析算法的执行快,涉及到底层存储结构,原生图存储基于点和边,计算中不需要过多的逻辑和物理层转换。原生图存储(neo4j/tigergraph)胜
  2. 容量 大数据时代可获取的数据越来越多,单机的容量有限。原生图存储如何实现分布式存储是困难所在。TigerGraph自称是原生并行图;neo4j支持数据的高可用HA集群,但非分布式存储;JanusGraph利用HBase等NoSQL作为后端存储,在存储层面算是分布式的,容量可以很大。百度基于JanusGraph开源了HugeGraph,增加了很多特性,提高了易用性及性能,增加了一些图分析算法。
  3. 查询能力 图数据库要具备点关系的查询能力,必不可少的如两点间所有路径,最短路径,多度查询等,这个一般都具备,差异主要是性能,普通图数据库查询3度及以上通常性能就很低了,而实际经常需要查询6度的关系,tigergraph自己的测试报告性能是很强劲的针对twitter的大图数据库,只有tigergraph完成了6度关系查询
  4. 图分析计算能力 图数据库如果仅具备存储及查询能力,则还需要依赖外部的GraphX等计算引擎才能完成一些图算法分析,这样即在数据传输,又在图表达上存在转换浪费。TigerGraph可以通过GSQL实现类存储过程式的算法封装,且已实现了很多图算法https://www.tigergraph.com.cn/tigergraph开源十大图数据库算法库/

百度基于JanusGraph开源了HugeGraph,增加了很多特性,提高了易用性及性能,增加了一些图分析算法。

JanusGraph/HugeGraph是开源的,Apache协议,开放性最好

neo4j社区版开源,非商用免费,商业版支持HA集群,并不是完全分布式,使用最广最流行

TigerGraph将普通数据库归为第一第二代,自己为第三代,“TigerGraph是非常完备和优化的图数据库平台,支持大规模图存储以及大规模图的运行处理,具有非常强大的查询语言和算法库”。TigerGraph没有开源,开发者版支持单机单用户单图非商业免费,不支持DynamicSchemaChange等,图创建好之后也能通过界面手工去修改或添加,除非DropAll。TG的GSQL是类sql的语言,表达能力挺强,其将编写的query直接安装发布为restapi的形式让我感到很惊艳。目前TigerGraph的生态不是很全,编程api等能力也有一定限制,但值得尝试

preview

![image-20211109160429069](/Users/andrew/Library/Application Support/typora-user-images/image-20211109160429069.png)

geagraph 阿里联合清华发布,没有开源

preview

janusgraph

img

tugraph

img

cypher 语法,没有开源,估计是neo4j套皮

preview

tigergraph

![image-20211111104734637](/Users/andrew/Library/Application Support/typora-user-images/image-20211111104734637.png)

img