我正在尝试评估在以下用例中最有效的方法:
[存在一组可以表示为图形的实体。图中的每个顶点代表一个实体,每个(单向边)代表一个子对父关系。一个实体可以有多个父实体,而一个父实体可以有多个子实体。通常,存在一个“主”实体,所有实体都可以追溯到该实体。无法删除任何实体。要求是应该易于跟踪任何实体的所有祖先。以下是我要评估的一些条件:
以该图为例:
在类似DynamoDB的常规数据库中,将表示为:
-------------------
entity | parents |
-------------------
A | [] |
-------------------
B | [A] |
-------------------
C | [A] |
-------------------
D | [A] |
-------------------
E | [B, C, D]|
-------------------
F | [C, D] |
-------------------
先前存在的条件是:
我对DynamoDB更加熟悉,但是对NeptuneDB或任何图形数据库只有非常基本的了解,因此DynamoDB需要较少的前期投资。另一方面,NeptuneDB当然更适合关系图存储,但是在什么条件下值得技术开销?
我正在尝试评估在以下用例中最有效的方法:存在一组可以表示为图形的实体。图中的每个顶点代表一个实体,每个(uni -...
当然,有许多方法可以建模和存储连接的数据。如您所见,您可以使用示例中的邻接表来存储图形。在处理高度连接的数据时,诸如Amazon Neptune之类的图形数据库真正可以提供帮助的地方就是查询的创建和执行。例如,使用Gremlin查询语言(Neptune支持TinkerPop / Gremlin和RDF / SPARQL),查找顶点'E'的最远祖先可以很简单:]