【问题标题】:Access Named Graph in Neptune with Gremlin使用 Gremlin 在 Neptune 中访问命名图
【发布时间】:2021-02-18 11:17:21
【问题描述】:

我需要在 Neptune 数据库集群中保存几个图表。

命名图是 Neptune https://docs.aws.amazon.com/neptune/latest/userguide/best-practices-sparql-graph.htmlSPARQL 格式支持的smths@

是否可以使用 GREMLIN 查询该 Graphs

我发现只有这种方法https://docs.aws.amazon.com/neptune/latest/userguide/access-graph-gremlin-rest.html,但没有任何关于访问命名图的能力的参考。也许我错过了一些?

【问题讨论】:

    标签: amazon-web-services sparql gremlin amazon-neptune


    【解决方案1】:

    如果您使用 Amazon Neptune 创建命名的 RDF 图,那么您只能使用 SPARQL 查询来查询该图。 Gremlin 没有命名图概念,但您可以使用PartitionStrategy 自动将图元素(节点、边)标记为某个逻辑“分区”的一部分。您可以在 Gremlin 查询中使用此技术来基本上执行您对 RDF 中的命名图所做的操作,只要您注意边不允许您在逻辑图之间“跳转”。

    另请参阅: https://tinkerpop.apache.org/docs/current/reference/#_partitionstrategy

    https://tinkerpop.apache.org/docs/current/reference/#_subgraphstrategy

    【讨论】:

    • 这很有帮助。谢谢开尔文。你什么时候会在性能方面选择子图策略而不是分区策略?
    • 如果您正在创建顶点或使用一个或多个特定分区键(属性)查找顶点,我将使用 PartitionStrategy。如果您想在未配置分区键属性的图中查找子图,SubgraphStrategy 可能更灵活。
    【解决方案2】:

    在 Neptune 中使用属性图模型时,您只能创建一个图。对于属性图数据模型,没有直接等效于命名图的方法。

    在使用 Amazon Neptune 时,您有多种选择用于这种多图方法。

    1. 如果您的用例对 RDF 模型有意义,您可以使用支持命名图的模型
    2. 如果您需要使用属性图模型,那么您可以考虑使用 Gremlin Partition Strategy 之类的东西将您的单个图划分为多个不同的图
    3. 如果上述选项都不起作用,那么您可能需要使用多个集群,每个图一个集群。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-20
      • 1970-01-01
      • 2021-12-07
      • 2019-06-04
      • 2019-08-10
      • 1970-01-01
      相关资源
      最近更新 更多