Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Verwenden von Gremlin mit der Neptune-DFE-Abfrage-Engine
Wenn Sie die alternative Abfrage-Engine von Neptune, auch bekannt als DFE, im Lab-Modus aktivieren (indem Sie den neptune_lab_mode
DB-Cluster-Parameter auf setzenDFEQueryEngine=enabled
), übersetzt Neptune schreibgeschütztes Gremlin queries/traversals in eine logische Zwischendarstellung und führt sie, wann immer möglich, auf der DFE-Engine aus.
Die DFE unterstützt jedoch noch nicht alle Gremlin-Schritte. Wenn ein Schritt nicht nativ auf dem DFE ausgeführt werden kann, greift Neptune darauf zurück, TinkerPop um den Schritt auszuführen. Die Berichte explain
und profile
enthalten Warnungen, wenn dies auftritt.
Anmerkung
Ab der Engine-Version 1.0.5.0 greift das DFE, wenn es auf einen Schritt stößt, den es nicht nativ unterstützt, auf die TinkerPop Basis-Engine zurück und nicht wie zuvor auf die Neptune Gremlin-Engine.
Überlappung der Abfrageplanung
Wenn der Übersetzungsprozess einen Gremlin-Schritt ohne entsprechenden nativen DFE-Operator versucht er vor dem Rückgriff auf TinkerPop, andere zwischengeschaltete Abfrageteile zu finden, die nativ in der DFE-Engine ausgeführt werden können. Hierzu wird auf die Traversierung auf der obersten Ebene eine Überlappungslogik angewendet. So werden unterstützte Schritte verwendet, wann immer möglich.
Jede solche zwischengeschaltete Abfrageübersetzung ohne Präfix wird mit NeptuneInterleavingStep
in den explain
- und profile
-Ausgaben dargestellt.
Zum Leistungsvergleich sollten Sie die Überlappung in einer Abfrage deaktivieren und die DFE-Engine weiter verwenden, um den Präfixteil auszuführen. Oder vielleicht möchten Sie nur die TinkerPop Engine für die Ausführung von Abfragen ohne Präfix verwenden. Sie können dies mithilfe des Abfragehinweises disableInterleaving
tun.
So wie der Abfragehinweis useDFE mit dem Wert false
verhindert, dass eine Abfrage überhaupt in der DFE ausgeführt wird, deaktiviert der Abfragehinweis disableInterleaving
mit dem Wert true
die DFE-Überlappung für die Übersetzung einer Abfrage. Zum Beispiel:
g.with('Neptune#disableInterleaving', true) .V().has('genre','drama').in('likes')
Aktualisierung der Ausgabe von Gremlin explain
und profile
Gremlin explain stellt Details zu der optimierten Traversierung bereit, die Neptune für die Ausführung einer Abfrage verwendet. In der DFE-Beispielausgabe für explain finden Sie ein Beispiel für die explain
-Ausgabe, wenn die DFE-Engine aktiviert ist.
Die Gremlin-profile-API führt eine angegebene Gremlin-Traversierung durch, sammelt verschiedene Metriken zur Ausführung und erstellt einen profile-Bericht mit Details zum optimierten Abfrageplan und zu den Laufzeitstatistiken verschiedener Operatoren. In der DFE-Beispielausgabe für profile finden Sie ein Beispiel für die profile
-Ausgabe, wenn die DFE-Engine aktiviert ist.
Anmerkung
Da es sich bei der DFE-Engine um ein experimentelles, im Labor-Modus veröffentlichtes Feature handelt, unterliegt das genaue Format der explain
- und profile
-Ausgabe Änderungen.