Die alternative Amazon Neptune Neptune-Abfrage-Engine () DFE - 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.

Die alternative Amazon Neptune Neptune-Abfrage-Engine () DFE

Amazon Neptune verfügt über eine alternative Abfrage-EngineDFE, die DB-Instance-Ressourcen wie CPU Kerne, Speicher und I/O effizienter nutzt als die ursprüngliche Neptune-Engine.

Anmerkung

Bei großen Datensätzen läuft die DFE Engine auf T3-Instances möglicherweise nicht einwandfrei.

Die DFE Engine läuftSPARQL, Gremlin und openCypher Abfragen und unterstützt eine Vielzahl von Plantypen, darunter Left-Deep-, Bushy- und Hybrid-Tarife. Planbetreiber können sowohl Rechenoperationen aufrufen, die auf einer reservierten Gruppe von Rechenkernen ausgeführt werden, als auch E/A-Operationen, die jeweils in einem eigenen Thread in einem E/A-Thread-Pool ausgeführt werden.

Der DFE verwendet vorgenerierte Statistiken über Ihre Neptun-Graphdaten, um fundierte Entscheidungen über die Strukturierung von Abfragen zu treffen. Informationen dazu, wie diese Statistiken generiert werden, finden Sie unter DFEStatistiken.

Die Wahl des Plantyps und der Anzahl der verwendeten Rechen-Threads erfolgt automatisch auf der Grundlage vorgenerierter Statistiken und der Ressourcen, die im Neptune-Hauptknoten verfügbar sind. Die Reihenfolge der Ergebnisse ist für Pläne mit interner Rechenparallelität nicht vorgegeben.

Steuern, wo der DFE Neptune-Motor verwendet wird

Standardmäßig ist der neptune_dfe_query_engine Instanzparameter einer Instanz auf gesetztviaQueryHint, was dazu führt, dass die DFE Engine nur für openCypher Abfragen und für Gremlin und SPARQL Abfragen verwendet wird, die explizit den useDFE Abfragehinweis enthalten, der auf gesetzt ist. true

Sie können die DFE Engine vollständig aktivieren, sodass sie nach Möglichkeit verwendet wird, indem Sie den neptune_dfe_query_engine Instanzparameter auf setzen. enabled

Sie können das auch deaktivieren, DFE indem Sie den useDFE Abfragehinweis für eine bestimmte Gremlin-Abfrage oder SPARQL -Abfrage hinzufügen. Mit diesem Abfragehinweis können Sie verhindern, dass die DFE bestimmte Abfrage ausgeführt wird.

Sie können anhand eines Instance-Status Aufrufs wie folgt feststellen, ob der in einer Instanz aktiviert DFE ist oder nicht:

curl -G https://your-neptune-endpoint:port/status

Die Statusantwort gibt dann an, ob der aktiviert DFE ist oder nicht:

{ "status":"healthy", "startTime":"Wed Dec 29 02:29:24 UTC 2021", "dbEngineVersion":"development", "role":"writer", "dfeQueryEngine":"viaQueryHint", "gremlin":{"version":"tinkerpop-3.5.2"}, "sparql":{"version":"sparql-1.1"}, "opencypher":{"version":"Neptune-9.0.20190305-1.0"}, "labMode":{ "ObjectIndex":"disabled", "ReadWriteConflictDetection":"enabled" }, "features":{ "ResultCache":{"status":"disabled"}, "IAMAuthentication":"disabled", "Streams":"disabled", "AuditLog":"disabled" }, "settings":{"clusterQueryTimeoutInMs":"120000"} }

Der Gremlin explain und die profile Ergebnisse sagen Ihnen, ob eine Abfrage von der ausgeführt wird. DFE Siehe In einem Gremlin-explain-Bericht enthaltene Informationen für explain und DFEprofileberichtet für profile.

In ähnlicher Weise SPARQL explain erfahren Sie, ob eine SPARQL Abfrage von der ausgeführt wird. DFE Weitere Informationen finden Sie unter Beispiel für eine SPARQL explain Ausgabe, wenn der aktiviert DFE ist und DFENode-Operator.

Vom Neptune unterstützte Abfragekonstrukte DFE

Derzeit DFE unterstützt der Neptune eine Teilmenge von SPARQL und Gremlin-Abfragekonstrukten.

Denn SPARQL dies ist die Teilmenge der konjunktiven grundlegenden Graphenmuster.

Für Gremlin ist dies im Allgemeinen die Teilmenge von Abfragen, die eine Kette von Traversierungen enthalten, die einige der komplexeren Schritte nicht enthalten.

Sie können wie folgt herausfinden, ob eine Ihrer Abfragen ganz oder teilweise ausgeführt wirdDFE: