

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
<a name="gremlin-with-dfe"></a>

Wenn Sie die [alternative Abfrage-Engine](neptune-dfe-engine.md) von Neptune, auch bekannt als DFE, im [Lab-Modus](features-lab-mode.md) aktivieren (indem Sie den `neptune_lab_mode` DB-Cluster-Parameter auf setzen`DFEQueryEngine=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.

# Berichterstattung über Gremlin-Schritte in DFE
<a name="gremlin-step-coverage-in-DFE"></a>

 Gremlin DFE ist eine Labmode-Funktion und kann verwendet werden, indem entweder der Cluster-Parameter aktiviert oder der Abfragehinweis verwendet wird. `Neptune#useDFE` Weitere Informationen finden Sie unter [Gremlin mit der Neptune DFE-Abfrage-Engine](https://docs.aws.amazon.com//neptune/latest/userguide/gremlin-with-dfe.html) verwenden. 

 Die folgenden Schritte können in Gremlin DFE verwendet werden. 

## Pfad- und Durchquerungsschritte:
<a name="DFE-path-and-traversal"></a>

 [asDate ()](https://tinkerpop.apache.org/docs/current/reference/#asDate-step), [barrier ()](https://tinkerpop.apache.org/docs/current/reference/#barrier-step), [call ()](https://tinkerpop.apache.org/docs/current/reference/#call-step), [cap ()](https://tinkerpop.apache.org/docs/current/reference/#cap-step), [dateAdd ()](https://tinkerpop.apache.org/docs/current/reference/#dateadd-step), [dateDiff ()](https://tinkerpop.apache.org/docs/current/reference/#datediff-step), [disjunct ()](https://tinkerpop.apache.org/docs/current/reference/#disjunct-step), [drop ()](https://tinkerpop.apache.org/docs/current/reference/#drop-step), [fail ()](https://tinkerpop.apache.org/docs/current/reference/#fail-step), [filter ()](https://tinkerpop.apache.org/docs/current/reference/#filter-step), [flatMap ()](https://tinkerpop.apache.org/docs/current/reference/#flatmap-step), [id ()](https://tinkerpop.apache.org/docs/current/reference/#id-step), [identity ()](https://tinkerpop.apache.org/docs/current/reference/#identity-step), [index ()](https://tinkerpop.apache.org/docs/current/reference/#index-step), [intersect ()](https://tinkerpop.apache.org/docs/current/reference/#intersect-step), [inject ()](https://tinkerpop.apache.org/docs/current/reference/#inject-step), [label ()](https://tinkerpop.apache.org/docs/current/reference/#label-step), [length ()](https://tinkerpop.apache.org/docs/current/reference/#length-step), [loops ()](https://tinkerpop.apache.org/docs/current/reference/#loops-step), [map ()](https://tinkerpop.apache.org/docs/current/reference/#map-step), [order () lokal)](https://tinkerpop.apache.org/docs/current/reference/#order-step)[, [Pfad](https://tinkerpop.apache.org/docs/current/reference/#path-step) ()](https://tinkerpop.apache.org/docs/current/reference/#order-step), [project ()](https://tinkerpop.apache.org/docs/current/reference/#project-step), [range ()](https://tinkerpop.apache.org/docs/current/reference/#range-step), [repeat ()](https://tinkerpop.apache.org/docs/current/reference/#repeat-step), [reverse ()](https://tinkerpop.apache.org/docs/current/reference/#reverse-step), [sack ()](https://tinkerpop.apache.org/docs/current/reference/#sack-step), [sample ()](https://tinkerpop.apache.org/docs/current/reference/#sample-step), [select ()](https://tinkerpop.apache.org/docs/current/reference/#select-step), [sideEffect ()](https://tinkerpop.apache.org/docs/current/reference/#sideeffect-step), [split ()](https://tinkerpop.apache.org/docs/current/reference/#split-step), [unfold ()](https://tinkerpop.apache.org/docs/current/reference/#unfold-step), [union ()](https://tinkerpop.apache.org/docs/current/reference/#union-step) 

## Schritte zur Aggregation und Erfassung:
<a name="DFE-aggregate-and-collection"></a>

 [aggregieren (global)](https://tinkerpop.apache.org/docs/current/reference/#aggregate-step), [kombinieren ()](https://tinkerpop.apache.org/docs/current/reference/#combine-step), [zählen ()](https://tinkerpop.apache.org/docs/current/reference/#count-step), [dedup ()](https://tinkerpop.apache.org/docs/current/reference/#dedup-step), [dedup (lokal), fold ()](https://tinkerpop.apache.org/docs/current/reference/#dedup-step)[, group ()](https://tinkerpop.apache.org/docs/current/reference/#fold-step)[, [groupCount](https://tinkerpop.apache.org/docs/current/reference/#groupcount-step) ()](https://tinkerpop.apache.org/docs/current/reference/#group-step), 

## Mathematische Schritte:
<a name="DFE-mathematical"></a>

 [max ()](https://tinkerpop.apache.org/docs/current/reference/#max-step), [Mittelwert ()](https://tinkerpop.apache.org/docs/current/reference/#mean-step), [min ()](https://tinkerpop.apache.org/docs/current/reference/#min-step), [Summe ()](https://tinkerpop.apache.org/docs/current/reference/#sum-step) 

## Schritte der Elemente:
<a name="DFE-element"></a>

 [Andere V ()](https://tinkerpop.apache.org/docs/current/reference/#otherv-step), [elementMap ()](https://tinkerpop.apache.org/docs/current/reference/#elementmap-step), [element (), v ()](https://tinkerpop.apache.org/docs/current/reference/#element-step)[, out ()](https://tinkerpop.apache.org/docs/current/reference/#graph-step)[, in (), beide (), oute (), ine (), sowohl E (), outV (), inV (), beide V (), otherV](https://tinkerpop.apache.org/docs/current/reference/#vertex-step) () 

## Schritte zur Immobilie:
<a name="DFE-property"></a>

 [Eigenschaften ()](https://tinkerpop.apache.org/docs/current/reference/#properties-step), [Schlüssel ()](https://tinkerpop.apache.org/docs/current/reference/#key-step), [ValueMap ()](https://tinkerpop.apache.org/docs/current/reference/#propertymap-step), [Wert (](https://tinkerpop.apache.org/docs/current/reference/#value-step)) 

## Schritte filtern:
<a name="DFE-filter"></a>

 [and ()](https://tinkerpop.apache.org/docs/current/reference/#and-step), [coalesce ()](https://tinkerpop.apache.org/docs/current/reference/#coalesce-step), [coin ()](https://tinkerpop.apache.org/docs/current/reference/#coin-step), [has ()](https://tinkerpop.apache.org/docs/current/reference/#has-step), [is ()](https://tinkerpop.apache.org/docs/current/reference/#is-step), [local ()](https://tinkerpop.apache.org/docs/current/reference/#local-step), [none (), not](https://tinkerpop.apache.org/docs/current/reference/#none-step) [()](https://tinkerpop.apache.org/docs/current/reference/#not-step), [or (), [where](https://tinkerpop.apache.org/docs/current/reference/#where-step) ()](https://tinkerpop.apache.org/docs/current/reference/#or-step) 

## Schritte zur Bearbeitung von Zeichenketten:
<a name="DFE-string-manipulation"></a>

 [concat ()](https://tinkerpop.apache.org/docs/current/reference/#concat-step)[, [lTrim ()](https://tinkerpop.apache.org/docs/current/reference/#lTrim-step), [rTrim (), [substring (), toLower ()](https://tinkerpop.apache.org/docs/current/reference/#substring-step)[, toUpper ()](https://tinkerpop.apache.org/docs/current/reference/#toLower-step), trim](https://tinkerpop.apache.org/docs/current/reference/#rtrim-step) ([)](https://tinkerpop.apache.org/docs/current/reference/#toUpper-step)](https://tinkerpop.apache.org/docs/current/reference/#trim-step) 

## Prädikate:
<a name="DFE-predicates"></a>
+  [Vergleiche: eq, neq, lt, lte, gt, gte](https://tinkerpop.apache.org/docs/current/reference/#a-note-on-predicates) 
+  [Enthält: innerhalb, ohne](https://tinkerpop.apache.org/docs/current/reference/#a-note-on-predicates) 
+  [TextP: endend mit, enthaltend,,, notStartingWith nichtenthaltend notEndingWith](https://tinkerpop.apache.org/docs/current/reference/#a-note-on-predicates) 
+  [P: und, oder, zwischen, draußen, drinnen](https://tinkerpop.apache.org/docs/current/reference/#a-note-on-predicates) 

## Einschränkungen
<a name="gremlin-with-dfe-limitations"></a>

 Repeat with Limit, Labels innerhalb, Repeat Traversal und Dedup werden in DFE noch nicht unterstützt. 

```
// With Limit inside the repeat traversal
  g.V().has('code','AGR').repeat(out().limit(5)).until(has('code','FRA'))
  
  // With Labels inside the repeat traversal
  g.V().has('code','AGR').repeat(out().as('a')).until(has('code','FRA'))
  
  // With Dedup inside the repeat traversal
  g.V().has('code','AGR').repeat(out().dedup()).until(has('code','FRA'))
```

 Pfade mit verschachtelten Wiederholungen oder Verzweigungsschritten werden noch nicht unterstützt. 

```
// Path with branching steps
  g.V().has('code','AGR').union(identity, outE().inV()).path().by('code')
  
  
  // With nested repeat
  g.V().has('code','AGR').repeat(out().union(identity(), out())).path().by('code')
```

## Überlappung der Abfrageplanung
<a name="gremlin-with-dfe-interleaving"></a>

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](gremlin-query-hints-useDFE.md) 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')
```

## Aktualisierung der Ausgabe von Gremlin `explain` und `profile`
<a name="gremlin-with-dfe-explain-update"></a>

Gremlin [explain](gremlin-explain.md) stellt Details zu der optimierten Traversierung bereit, die Neptune für die Ausführung einer Abfrage verwendet. In der [DFE-Beispielausgabe für `explain`](gremlin-explain-api.md#gremlin-explain-dfe) finden Sie ein Beispiel für die `explain`-Ausgabe, wenn die DFE-Engine aktiviert ist.

Die [Gremlin-`profile`-API](gremlin-profile-api.md) 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`](gremlin-profile-api.md#gremlin-profile-sample-dfe-output) 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.