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 Gkremlin avec le moteur de requêtes DFE Neptune
Si vous activez complètement le moteur de requêtes 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 G705. 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 Gremlin 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 Gremlin 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édicatsWithout
.WherePredicateStep
avec des filtresPath
, mais aucune prise en charge de la rechercheByModulation
,SideEffect
ouMap
DedupGlobalStep
, à l'exception de la prise en charge de la rechercheByModulation
,SideEffect
etMap
.
Entrelacement de la planification des requêtes
Lorsque le processus de traduction rencontre une étape Gremlin 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.