Comment Neptune traite les requêtes Gremlin à l'aide d'index d'instructions - Amazon Neptune

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Comment Neptune traite les requêtes Gremlin à l'aide d'index d'instructions

Les relevés sont accessibles dans Amazon Neptune via trois index de relevés, comme indiqué dansComment les relevés sont indexés dans Neptune. Neptune extrait une déclarationmodèleà partir d'une requête Gremlin dans laquelle certaines positions sont connues, les autres étant laissées à la découverte par recherche par index.

Neptune suppose que la taille du schéma du graphe de propriétés n'est pas grande. Cela signifie que le nombre d'étiquettes de bord et de noms de propriétés distincts est assez faible, ce qui se traduit par un faible nombre total de prédicats distincts. Neptune suit des prédicats distincts dans un index séparé. Il utilise ce cache de prédicats pour effectuer une analyse d'union de { all P x POGS } au lieu d'utiliser un index OSGP. Le fait d'éviter d'avoir besoin d'un index OSGP de traversée inverse permet d'économiser de l'espace de stockage et du débit de charge.

L'API Neptune Gremlin Explain/Profile vous permet d'obtenir le nombre de prédicats dans votre graphique. Vous pouvez ensuite déterminer si votre application invalide l'hypothèse de Neptune selon laquelle votre schéma de graphe de propriétés est petit.

Les exemples suivants illustrent la façon dont Neptune utilise les index pour traiter les requêtes Gremlin.

aux aux aux aux Quelles sont les étiquettes du vertexv1?

Gremlin code: g.V('v1').label() Pattern: (<v1>, <~label>, ?, ?) Known positions: SP Lookup positions: OG Index: SPOG Key range: <v1>:<~label>:*

aux aux aux aux Quels sont les bords extérieurs « connus » d'un sommetv1?

Gremlin code: g.V('v1').out('knows') Pattern: (<v1>, <knows>, ?, ?) Known positions: SP Lookup positions: OG Index: SPOG Key range: <v1>:<knows>:*

aux aux aux aux Quels sommets ont unePersonétiquette Vertex ?

Gremlin code: g.V().hasLabel('Person') Pattern: (?, <~label>, <Person>, <~>) Known positions: POG Lookup positions: S Index: POGS Key range: <~label>:<Person>:<~>:*

aux aux aux aux Quels sont les sommets depuis/vers d'une arête donnéee1?

Gremlin code: g.E('e1').bothV() Pattern: (?, ?, ?, <e1>) Known positions: G Lookup positions: SPO Index: GPSO Key range: <e1>:*

Un indice de déclaration que Neptune faitpashave est un index OSGP à traversée inversée. Ce type d'index peut être utilisé pour collecter tous les arcs entrants sur toutes les étiquettes d'arcs, comme dans l'exemple suivant.

aux aux aux aux Quels sont les sommets adjacents entrantsv1?

Gremlin code: g.V('v1').in() Pattern: (?, ?, <v1>, ?) Known positions: O Lookup positions: SPG Index: OSGP // <-- Index does not exist