neo4j是一个数据库(可以理解为类似于hbase的东西,但是neo4j几乎是一个独立的数据库。与hbase不同,hbase的数据存储在hdfs上,由hdfs进行维护。hdfs将数据存储在exfat和其他独立文件系统上。
neo4j将数据直接格式化到独立的文件系统。每个服务器都存储完整的图形数据。graphx是一个计算引擎(类似于mapreduce)。它的数据是使用sql从shark读取的,或者rdd操作符从文件读取,然后直接计算。另外,数据库和计算引擎都可以执行计算任务,但数据库的接口相对较弱,只支持简单的查询,计算引擎提供了强大的计算接口,便于编程。pagerank和其他的图形算法很容易实现。graphx应该更便于数据挖掘。由于有几个通用编程端口,neo4j需要编写自己的代码。编程很麻烦,但在性能上可能有优势
图形数据库中的每个对象都是一个节点,它们之间的关系是一条边。与关系数据库相比,图形数据库能够处理大量复杂的、互联的、低结构的、变化迅速的、需要频繁查询的数据。在关系数据库中,这些查询会导致大量的表连接,从而导致性能问题,不便于设计和使用。
图形数据库适用于社交网络、推荐系统和其他侧重于构建关系图的系统。
图形数据库的代表有neo4j、flockdb、infogrid、allegrograph、graphdb等。