SparkGraphX和Neo4j对比
Neo4j
优点
- 支持交互式查询,查询效率很高。能够迅速从整网中找出符合特定模式的子网,供随后分析之用,适用于OLTP(Online Transaction Processing)场景
- 支持算法:
- 社区发现算法,
- 中心算法,
- 路径查找算法,
- 相似度算法,
- 连接分量预测算法
缺点
- 不支持数据分片。因此存储数据有限
Spark
- 支持海量数据,运算基于RDD,因此Spark的优点既是SparkGraphX的优点,他的概念集中在图计算,而非图存储和查询领域,适合OLAP(Online Analytical Processing)场景
- 支持算法
- 网页排名算法
- 三角计数算法
- 连接分量算法
- 社区发现算法
- 最短路径算法
Neo4j补充
Neo4j 是图数据库产品,偏向于存储和查询。图存储是说它能装那些关联关系比较复杂,实体之间的连接很丰富,就像一张网或一张图的数据。比如社交网络,知识图谱,金融风控等领域的数据。图查询是说它擅长从某个点或某些点出发,根据特定条件在复杂的关联关系中找到目标点或边。比如说在社交网络中找到我三步以内能认识的人,这些人可以认为是我的潜在朋友。这种数据量限定在一定范围内,能短时完成的查询就是所谓的 OLTP 操作。
GraphX补充
GraphX 是一个 Spark 的一个子模块,它是一个图计算系统,也可以说是图分析系统,它不去承担数据存储的职责。图分析和图查询的区别在于:图分析往往是整张图的操作,而且可能是多次迭代;而图查询只涉及图的一部分,且只需一次。对用户而言最直观的感受是:图分析很慢,图查询很快。
总结
Neo4j 这样的图数据库是在线事务处理 OLTP,GraphX 这样的图处理系统是在线分析处理 OLAP。
主要参考地址
https://www.zhihu.com/question/23916994
https://zhidao.baidu.com/question/1177784139537807219.html
https://neo4j.com/docs/graph-algorithms/3.5/
https://stackoverflow.com/questions/28609125/neo4j-or-graphx-giraph-what-to-choose