Neptune DFEクエリエンジンでの Gremlin の使用 - Amazon Neptune

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

Neptune DFEクエリエンジンでの Gremlin の使用

ラボモードDFEの と呼ばれる Neptune 代替クエリエンジンを完全に有効にすると (neptune_lab_modeDB クラスターパラメータを に設定DFEQueryEngine=enabled)、Neptune は読み取り専用の Gremlin クエリ/トラバーサルを中間論理表現に変換し、可能な限りDFEエンジンで実行します。

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

注記

エンジンリリース 1.0.5.0 以降、ネイティブサポートなしで Gremlin ステップを処理するためのデフォルトのDFE動作が変更されました。以前はDFE、エンジンが Neptune Gremlin エンジンにフォールバックしていましたが、現在は vanilla TinkerPop エンジンにフォールバックしています。

DFE エンジンでネイティブにサポートされている Gremlin ステップ
  • GraphStep

  • VertexStep

  • EdgeVertexStep

  • IdStep

  • TraversalFilterStep

  • PropertiesStep

  • HasStep プロパティと ID とラベルの頂点とエッジのフィルタリングサポート (テキストと Without 述語を除く)。

  • WherePredicateStepPath-スコープ付きフィルタ。ただし、ByModulationSideEffect または Map ルックアップサポートなし

  • DedupGlobalStep、ただし ByModulationSideEffect および Map ルックアップサポートは除く。

クエリ計画インターリーブ

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

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

パフォーマンスを比較するには、DFEエンジンを使用してプレフィックス部分を実行しながら、クエリのインターリーブをオフにすることができます。または、プレフィックス以外のクエリ実行には TinkerPop エンジンのみを使用することをお勧めします。これを行うには、disableInterleaving クエリヒントを使用します。

値が のの使用DFEクエリヒントが でクエリを実行falseできないように、値が DFE のdisableInterleavingクエリヒントtrueは、クエリの翻訳のためのDFEインターリーブをオフにします。例:

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

Gremlin explain および profile 出力の更新

Gremlin explain は、Neptune がクエリの実行に使用する最適化されたトラバーサルの詳細を示します。DFE エンジンが有効になっている場合のDFEexplain出力の例については、explain出力例を参照してください。

Gremlin profile API は指定された Gremlin トラバーサルを実行し、実行に関するさまざまなメトリクスを収集して、最適化されたクエリプランの詳細と、さまざまな演算子の実行時統計情報を含むプロファイルレポートを生成します。DFE エンジンが有効になっている場合のDFEprofile出力の例については、profile出力例を参照してください。

注記

DFE エンジンはラボモードでリリースされた実験的な機能であるため、 explainおよび profile出力の正確な形式は変更される可能性があります。