Gremlin mit der DFE Neptune-Abfrage-Engine verwenden - Amazon Neptune

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.

Gremlin mit der DFE Neptune-Abfrage-Engine verwenden

Wenn Sie die alternative Neptune-Abfrage-Engine, den sogenannten In-Lab-Modus, vollständig aktivieren (indem Sie den neptune_lab_mode DB-Cluster-Parameter auf setzenDFEQueryEngine=enabled), übersetzt Neptune schreibgeschützte Gremlin-Abfragen/Traversals DFE in eine logische Zwischendarstellung und führt sie, wann immer möglich, auf der Engine aus. DFE

DFEDas unterstützt jedoch noch nicht alle Gremlin-Schritte. Wenn ein Schritt nicht nativ auf dem ausgeführt werden kannDFE, 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 hat sich das DFE Standardverhalten für die Behandlung von Gremlin-Schritten ohne native Unterstützung geändert. Wo früher der DFE Motor auf den Neptune Gremlin-Motor zurückfiel, fällt er jetzt auf den Vanille-Motor zurück. TinkerPop

Gremlin-Schritte, die nativ von der Engine unterstützt werden DFE
  • GraphStep

  • VertexStep

  • EdgeVertexStep

  • IdStep

  • TraversalFilterStep

  • PropertiesStep

  • HasStep Filterunterstützung für Eckpunkte und Kanten in Eigenschaften, IDs und Bezeichnungen, außer Text- und Without-Prädikaten.

  • WherePredicateStep mit Filtern mit Path-Bereich, aber keine ByModulation-, SideEffect- oder Map- Suchunterstützung.

  • DedupGlobalStep mit Ausnahme von ByModulation-, SideEffect- und Map-Suchunterstützung.

Überlappung der Abfrageplanung

Wenn der Übersetzungsprozess auf einen Gremlin-Schritt stößt, der keinen entsprechenden systemeigenen DFE Operator hat, versucht er, bevor er auf Tinkerpop zurückgreift, andere Zwischenabfrageteile zu finden, die nativ auf der Engine ausgeführt werden können. DFE 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.

Um die Leistung zu vergleichen, möchten Sie vielleicht das Interleaving in einer Abfrage deaktivieren und gleichzeitig die Engine verwenden, um den DFE Präfixteil auszuführen. Oder Sie möchten möglicherweise 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 benutzen DFE Abfragehinweis mit dem Wert von false verhindert, dass eine Abfrage DFE überhaupt für den ausgeführt wird, true deaktiviert der disableInterleaving Abfragehinweis mit dem Wert von DFE Interleaving für die Übersetzung einer Abfrage. Beispielsweise:

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 DFEexplainBeispielausgabe finden Sie ein Beispiel dafür, wie die explain Ausgabe aussieht, 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 DFEprofileBeispielausgabe finden Sie ein Beispiel dafür, wie die profile Ausgabe aussieht, wenn die DFE Engine aktiviert ist.

Anmerkung

Da es sich bei der DFE Engine um eine experimentelle Funktion handelt, die im Labormodus veröffentlicht wurde, kann sich das explain genaue Format der profile UND-Ausgabe ändern.