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
Sie können die alternative Abfrage-Engine von Neptune, bekannt als DFE, auf zwei Arten aktivieren:
Stellen Sie den neptune_dfe_query_engine Instanzparameter
enabledfür alle Abfragen auf der Instanz auf ein.Verwenden Sie den useDFE Abfragehinweis für einzelne Abfragen (neptune_dfe_query_enginemuss auf den Standardwert von gesetzt werden
viaQueryHint).
Wenn DFE aktiviert ist, übersetzt Neptune schreibgeschützte Gremlin-Abfragen und 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 zurück, um den Schritt auszuführen. TinkerPop Die Berichte explain und profile enthalten Warnungen, wenn dies auftritt.
Ü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 Sie möchten vielleicht 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. Beispiel:
g.with('Neptune#disableInterleaving', true) .V().has('genre','drama').in('likes')
Die Ausgabe von Gremlin Explain und Profile wurde aktualisiert
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-Unterstützung für Gremlin um eine experimentelle Funktion handelt, kann sich das genaue Format der profile Ausgabe explain ändern.