AWS Neptune DB与Dynamo DB的实体血统

问题描述 投票:-1回答:1

我正在尝试评估在以下用例中最有效的方法:

[存在一组可以表示为图形的实体。图中的每个顶点代表一个实体,每个(单向边)代表一个子对父关系。一个实体可以有多个父实体,而一个父实体可以有多个子实体。通常,存在一个“主”实体,所有实体都可以追溯到该实体。无法删除任何实体。要求是应该易于跟踪任何实体的所有祖先。以下是我要评估的一些条件:

  1. 深树(最高祖先可能在很远的地方)与浅树(最高祖先通常不在很远的地方)] >>
  2. 广泛的遍历路径(一个顶点可以有很多父母)与狭窄的遍历路径(一个顶点通常没有很多父母)
  3. 我错过的任何其他重要条件
  4. 以该图为例:

graph_db_compare

在类似DynamoDB的常规数据库中,将表示为:

-------------------
entity | parents  |
-------------------
A      | []       |
-------------------
B      | [A]      |
-------------------
C      | [A]      |
-------------------
D      | [A]      |
-------------------
E      | [B, C, D]|
-------------------
F      | [C, D]   |
-------------------

先前存在的条件是:

我对DynamoDB更加熟悉,但是对NeptuneDB或任何图形数据库只有非常基本的了解,因此DynamoDB需要较少的前期投资。另一方面,NeptuneDB当然更适合关系图存储,但是在什么条件下值得技术开销?

我正在尝试评估在以下用例中最有效的方法:存在一组可以表示为图形的实体。图中的每个顶点代表一个实体,每个(uni -...

database amazon-web-services amazon-dynamodb graph-databases amazon-neptune
1个回答
0
投票

当然,有许多方法可以建模和存储连接的数据。如您所见,您可以使用示例中的邻接表来存储图形。在处理高度连接的数据时,诸如Amazon Neptune之类的图形数据库真正可以提供帮助的地方就是查询的创建和执行。例如,使用Gremlin查询语言(Neptune支持TinkerPop / Gremlin和RDF / SPARQL),查找顶点'E'的最远祖先可以很简单:]

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.