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

Si vous activez complètement le moteur de requête alternatif Neptune connu sous le nom de mode DFE in lab (en définissant le paramètre du neptune_lab_mode cluster de base de données surDFEQueryEngine=enabled), Neptune traduit les requêtes/traversées G705 en lecture seule en une représentation logique intermédiaire et les exécute sur le moteur chaque fois que cela est possible. DFE

Cependant, il DFE ne prend pas encore en charge toutes les étapes de Gremlin. Lorsqu'une étape ne peut pas être exécutée nativement sur leDFE, Neptune recourt à nouveau pour exécuter TinkerPop l'étape. Les rapports explain et profile incluent des avertissements lorsque cela se produit.

Note

À partir de la version 1.0.5.0 du moteur, le DFE comportement par défaut pour gérer les étapes de Gkremlin sans support natif a changé. Alors qu'auparavant, le DFE moteur reposait sur le moteur Neptune Gremlin, il repose désormais sur le moteur normal. TinkerPop

Étapes de G705 prises en charge nativement par le moteur DFE
  • GraphStep

  • VertexStep

  • EdgeVertexStep

  • IdStep

  • TraversalFilterStep

  • PropertiesStep

  • Prise en charge du filtrage HasStep pour les sommets et les arêtes sur les propriétés, les ID et les étiquettes, à l'exception du texte et des prédicats Without.

  • WherePredicateStep avec des filtres Path, mais aucune prise en charge de la recherche ByModulation, SideEffect ou Map

  • DedupGlobalStep, à l'exception de la prise en charge de la recherche ByModulation, SideEffect et Map.

Entrelacement de la planification des requêtes

Lorsque le processus de traduction rencontre une étape G705 qui n'a pas d'DFEopérateur natif correspondant, avant de revenir à Tinkerpop, il essaie de trouver d'autres parties de requête intermédiaires pouvant être exécutées nativement sur le moteur. DFE Pour ce faire, il applique une logique d'entrelacement à la traversée de niveau supérieur. De la sorte, les étapes prises en charge sont utilisées dans la mesure du possible.

Toute conversion de requête intermédiaire sans préfixe est représentée à l'aide de NeptuneInterleavingStep dans les sorties explain et profile.

Pour comparer les performances, vous pouvez désactiver l'entrelacement dans une requête, tout en utilisant le DFE moteur pour exécuter la partie préfixe. Vous pouvez également utiliser uniquement le TinkerPop moteur pour l'exécution de requêtes sans préfixe. Pour ce faire, vous avez besoin d'un indicateur de requête disableInterleaving.

Tout comme l'indice de utiliser DFE requête avec une valeur de false empêche l'exécution d'une requête sur leDFE, l'indice de disableInterleaving requête avec une valeur de true désactive l'DFEentrelacement pour la traduction d'une requête. Par exemple :

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

Mise à jour de la sortie Gremlin explain et profile

Gremlin explain fournit des informations sur la traversée optimisée que Neptune utilisera pour exécuter une requête. Consultez l'exemple DFE explain de sortie pour un exemple de ce à quoi ressemble la explain sortie lorsque le DFE moteur est activé.

L'Gremlin profile API effectue une traversée Gremlin spécifiée, collecte diverses métriques relatives à l'exécution et génère un rapport de profil contenant des informations sur le plan de requête optimisé et les statistiques d'exécution de différents opérateurs. Consultez l'exemple DFE profile de sortie pour un exemple de ce à quoi ressemble la profile sortie lorsque le DFE moteur est activé.

Note

Le DFE moteur étant une fonctionnalité expérimentale publiée en mode laboratoire, le format exact de la profile sortie explain et est sujet à modification.