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, die sogenannte DFE, auf zwei Arten aktivieren:
Setzen Sie den neptune_dfe_query_engineInstanzparameter
enabledfür alle Abfragen auf der Instanz auf.Verwenden Sie den useDFEAbfragehinweis für einzelne Abfragen (
neptune_dfe_query_enginemuss auf den Standardwert gesetzt seinviaQueryHint).
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 darauf zurück, TinkerPop um den Schritt auszuführen. 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 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. Beispiel:
g.with('Neptune#disableInterleaving', true) .V().has('genre','drama').in('likes')
Die Gremlin-Erklärung und die Profilausgabe wurden aktualisiert
Gremlin-Erklärung und die Profilausgabe wurden aktualisiertGremlin 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 UND-Ausgabe explain ändern.