

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Gremlin と Neptune DFE クエリエンジンを使用する
<a name="gremlin-with-dfe"></a>

DFE と呼ばれる Neptune の[代替クエリエンジン](neptune-dfe-engine.md)は、次の 2 つの方法で有効にできます。
+ [`neptune_dfe_query_engine`](parameters.md#parameters-instance-parameters-neptune_dfe_query_engine) インスタンスのすべてのクエリ`enabled`について、インスタンスパラメータを に設定します。
+ 個々の[`useDFE`クエリでクエリヒント](gremlin-query-hints-useDFE.md)を使用します (デフォルト値`neptune_dfe_query_engine`の に設定する必要があります`viaQueryHint`)。

DFE を有効にすると、Neptune は読み取り専用の Gremlin クエリとトラバーサルを中間論理表現に変換し、可能な限り DFE エンジンで実行します。

ただし、DFE はまだ Gremlin のすべてのステップをサポートしていません。DFE でステップをネイティブに実行できない場合、Neptune は TinkerPop にフォールバックしてステップを実行します。これが発生すると、`explain` および `profile` レポートに警告が含まれます。

## クエリ計画インターリーブ
<a name="gremlin-with-dfe-interleaving"></a>

変換プロセスで、対応するネイティブ DFE 演算子を持たない Gremlin ステップが検出されると、Tinkerpop の使用にフォールバックする前に、DFE エンジンでネイティブに実行できる他の中間クエリ部分を見つけようとします。これは、最上位レベルのトラバーサルにインターリーブロジックを適用することによって行われます。その結果、サポートされているステップは可能な限り使用されます。

このような中間的な非プレフィックスクエリ変換は、`NeptuneInterleavingStep` および`explain` 出力にある `profile` を使って表されます。

パフォーマンスの比較のために、DFE エンジンを使用してプレフィックス部分を実行しながら、クエリでのインターリーブをオフにしたい場合があります。または、非プレフィックスクエリの実行に TinkerPop エンジンだけを使用することもできます。これを行うには、`disableInterleaving` クエリヒントを使用します。

[useDFE](gremlin-query-hints-useDFE.md) 値の `false` クエリヒントにより DFE でクエリがまったく実行されなくなるように、`disableInterleaving` 値の `true` クエリヒントはクエリの変換の DFE インターリーブをオフにします。例: 

```
g.with('Neptune#disableInterleaving', true)
 .V().has('genre','drama').in('likes')
```

## Gremlin `explain` および `profile` 出力の更新
<a name="gremlin-with-dfe-explain-update"></a>

Gremlin [explain](gremlin-explain.md) は、Neptune がクエリの実行に使用する最適化されたトラバーサルの詳細を示します。DFE エンジンが無効化されているときの `explain` 出力はどのようなものかの例について、[サンプル DFE `explain` 出力](gremlin-explain-api.md#gremlin-explain-dfe)をご覧ください。

[Gremlin `profile` API](gremlin-profile-api.md) は指定された Gremlin トラバーサルを実行し、実行に関するさまざまなメトリクスを収集して、最適化されたクエリプランの詳細と、さまざまな演算子の実行時統計情報を含むプロファイルレポートを生成します。`profile` DFE エンジンが無効化されているときの出力はどのようなものかの例について、[サンプル DFE `profile` 出力](gremlin-profile-api.md#gremlin-profile-sample-dfe-output)をご覧ください。

**注記**  
Gremlin の DFE サポートは実験的な機能であるため、 `explain`および `profile`出力の正確な形式は変更される可能性があります。