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'instruction
Les instructions sont accessibles dans Amazon Neptune au moyen de trois index d'instruction, comme indiqué dans Comment les instructions sont indexées dans Neptune. Neptune extrait un modèle d'instruction à partir d'une requête Gremlin dans laquelle certaines positions sont connues, tandis que les autres peuvent être découvertes via une recherche par index.
Neptune présume que le schéma de graphe de propriétés est de petite taille. Par conséquent, le nombre d'étiquettes d'arête et de noms de propriété distincts est relativement faible, ce qui se traduit par un faible nombre total de prédicats distincts. Neptune suit les prédicats distincts dans un index séparé. Il utilise ce cache de prédicats pour effectuer un scan syndical { all P x POGS }
plutôt que d'utiliser un OSGP index. Le fait d'éviter le recours à un OSGP index de traversée inverse permet d'économiser à la fois de l'espace de stockage et du débit de charge.
L'explication et le profil de Neptune Gremlin vous API permettent d'obtenir le nombre de prédicats dans votre graphique. Vous pouvez ensuite déterminer si votre application invalide l'hypothèse Neptune selon laquelle le schéma de votre graphe de propriété est de petite taille.
Les exemples suivants illustrent la façon dont Neptune utilise les index pour traiter les requêtes Gremlin.
Question : Quelles sont les étiquettes du sommet v1
?
Gremlin code: g.V('v1').label() Pattern: (<v1>, <~label>, ?, ?) Known positions: SP Lookup positions: OG Index: SPOG Key range: <v1>:<~label>:*
Question : Quelles sont les arêtes sortantes « knows » du sommet v1
?
Gremlin code: g.V('v1').out('knows') Pattern: (<v1>, <knows>, ?, ?) Known positions: SP Lookup positions: OG Index: SPOG Key range: <v1>:<knows>:*
Question : Quels sont les sommets qui ont une étiquette de sommet Person
?
Gremlin code: g.V().hasLabel('Person') Pattern: (?, <~label>, <Person>, <~>) Known positions: POG Lookup positions: S Index: POGS Key range: <~label>:<Person>:<~>:*
Question : Quels sont les sommets de départ/d'arrivée d'un arc e1
donné ?
Gremlin code: g.E('e1').bothV() Pattern: (?, ?, ?, <e1>) Known positions: G Lookup positions: SPO Index: GPSO Key range: <e1>:*
Neptune ne possède pas d'index de déclaration, à savoir un indice de traversée OSGP inverse. Ce type d'index peut être utilisé pour collecter toutes les arêtes entrantes sur toutes les étiquettes d'arête, comme dans l'exemple suivant.
Question : Quels sont les sommets adjacents entrants v1
?
Gremlin code: g.V('v1').in() Pattern: (?, ?, <v1>, ?) Known positions: O Lookup positions: SPG Index: OSGP // <-- Index does not exist