首页 > 解决方案 > 如何最好地在 AWS Neptune 中建模数据

问题描述

我目前正在评估 AWS Neptune 作为一个潜在的图形数据库(特别是将其与 Azure Cosmos Graph DB 进行比较)。场景是我有一堆测试数据,我正在使用批量加载程序添加这些数据,然后将对数据库性能运行一些基准测试。

我很好奇如何最好地在 AWS Neptune 中建模数据。

在 Azure Cosmos Graph DB 中,边是单向的,并且存储在源顶点上。因此,除非一条边也存储在另一个顶点上,否则需要查找入站边的查询会很慢。

到目前为止,在 AWS Neptune 中,我还没有找到关于如何以类似方式对边缘进行最佳优化的答案。

阅读 Neptune 内部数据模型的描述 ( https://docs.aws.amazon.com/neptune/latest/userguide/feature-overview-data-model.html ) 表明两个顶点都有一个通用的存储模式,使用 3 种最常见的访问模式索引的边和属性。

所以我会基于这个假设:

  1. 我们需要存储传入和传出边,或者
  2. 我们需要启用“使用实验室模式创建 OSGP 索引”以从两个方向进行索引

这里最好的方法是什么?

标签: amazon-web-servicesgraphgremlinamazon-neptune

解决方案


通常,在 Gremlin 中遍历边时,最好指定您感兴趣的边标签。这有助于查询引擎更轻松地放弃考虑其他边。对于需要查看传入边的任何步骤,例如 、ininEboth,尤其如此bothE

特定于 Amazon Neptune,只要您能够为这些步骤提供一个或多个标签,就不需要 OSGP 索引。


推荐阅读