Utilisation de Gremlin avec le moteur de requêtes Neptune DFE - 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.

Utilisation de Gremlin avec le moteur de requêtes Neptune DFE

Si vous activez complètement le Neptunemoteur de requête alternatifconnu sous le nom de DFE enMode Lab(en définissant leneptune_lab_modeParamètre de cluster DB pourDFEQueryEngine=enabled), puis Neptune traduit les requêtes/traversées Gremlin en lecture seule en une représentation logique intermédiaire et les exécute sur le moteur DFE chaque fois que cela est possible.

Cependant, le DFE ne prend pas encore en charge toutes les étapes du Gremlin. Lorsqu'une étape ne peut pas être exécutée en mode natif sur le DFE, Neptune revient sur TinkerPop pour exécuter l'étape. Dans laexplainetprofileles rapports incluent des avertissements lorsque cela se produit.

Note

Commence parversion du moteur 1.0.5.0, le comportement par défaut du DFE pour gérer les étapes de Gremlin sans support natif a changé. Alors qu'auparavant, le moteur DFE s'appuyait sur le moteur Neptune Gremlin, il retombe maintenant sur le moteur vanille TinkerPop moteur.

Étapes Gremlin prises en charge nativement par le moteur DFE

  • GraphStep

  • VertexStep

  • EdgeVertexStep

  • IdStep

  • TraversalFilterStep

  • PropertiesStep

  • HasStepsupport de filtrage pour les sommets et les arêtes sur les propriétés, les identifiants et les étiquettes, à l'exception du texte etWithoutPrédicats.

  • WherePredicateStepavecPath-filtres délimités, mais nonByModulation,SideEffectouMapAide de recherche

  • DedupGlobalStep, à l'exceptionByModulation,SideEffect, etMapaide à la recherche.

Entrelacement de planification

Lorsque le processus de traduction rencontre une étape Gremlin qui ne possède pas d'opérateur DFE natif correspondant, avant de recommencer à utiliser Tinkerpop, il essaie de trouver d'autres parties de requête intermédiaires pouvant être exécutées en mode natif sur le moteur DFE. Pour ce faire, il applique une logique d'entrelacement à la traversée de niveau supérieur. Il en résulte que les étapes prises en charge sont utilisées dans la mesure du possible.

Toute traduction de requête intermédiaire, sans préfixe, est représentée à l'aide deNeptuneInterleavingStepdans leexplainetprofilesorties.

Pour comparer les performances, vous pouvez désactiver l'entrelacement dans une requête, tout en utilisant le moteur DFE pour exécuter la partie préfixe. À l'inverse, vous pouvez souhaiter utiliser uniquement le. TinkerPop moteur pour l'exécution de requêtes sans préfixe. Vous pouvez faire cela en utilisantdisableInterleavingIndicateurs de requête.

Tout comme leFe d'occasionindice de requête avec une valeur defalseempêche totalement l'exécution d'une requête sur le DFE,disableInterleavingindice de requête avec une valeur detruedésactive l'entrelacement DFE pour la traduction d'une requête. Par exemple :

g.with('Neptune#disableInterleaving', true) .V().has('genre','drama').in('likes')

Mise à jour de Gremlinexplainetprofilesortie

Gremlinexpliquerfournit des détails sur la traversée optimisée que Neptune utilise pour exécuter une requête. Voir leexemple DFEexplainsortiepour un exemple de quoiexplainla sortie ressemble à celle lorsque le moteur DFE est activé.

Dans laGremlinprofileAPIexécute une traversée Gremlin spécifiée, collecte diverses mesures relatives à l'exécution et produit un rapport de profil contenant des détails sur le plan de requête optimisé et les statistiques d'exécution des différents opérateurs. Voirexemple DFEprofilesortiepour un exemple de quoiprofilela sortie ressemble à celle lorsque le moteur DFE est activé.

Note

Le moteur DFE étant une fonctionnalité expérimentale publiée en mode laboratoire, le format exact duexplainetprofilela sortie est susceptible d'être modifiée.