Amazon Neptune 代替クエリエンジン (DFE) - Amazon Neptune

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

Amazon Neptune 代替クエリエンジン (DFE)

Amazon Neptune には、元のエンジンよりも効率的に CPU コア、メモリ、I/O などの DB インスタンスリソースを使用する DFE と呼ばれる代替クエリエンジンがあります。

注記

データセットが大きいと、T3 インスタンスでは DFE エンジンが適切に動作しない場合があります。

DFE エンジンは SPARQL、Gremlin、および openCypher クエリを実行し、左ディープ、ブッシー、ハイブリッドなど、多種多様なプランタイプをサポートします。  プランオペレータは、予約済みのコンピューティングコアのセットで実行されるコンピューティング操作と、I/O スレッドプール内の独自のスレッドで実行される I/O 操作の両方を呼び出すことができます。 

DFE は、Neptune グラフデータに関する事前生成された統計情報を使用して、クエリの構造化方法について情報に基づいた判断を下します。  これらの統計の生成方法については、「DFE 統計」を参照してください。

プランタイプと使用されるコンピューティングスレッドの数は、事前に生成された統計と Neptune ヘッドノードで使用可能なリソースに基づいて自動的に選択されます。結果の順序は、内部計算の並列性を持つプランでは事前に決められていません。

Neptune DFE エンジンの使用場所の制御

デフォルトでは、インスタンスの neptune_dfe_query_engine インスタンスパラメータは viaQueryHint に設定されます。これにより、DFE エンジンは openCypher クエリと、useDFE クエリヒントが true に明示的に設定された Gremlin および SPARQL クエリにのみ使用されます。

neptune_dfe_query_engine インスタンスパラメータを enabled に設定することにより、DFE エンジンを完全に有効にして、可能な限りどこでも使用できるようにすることができます。

特定の Gremlin クエリまたは SPARQL クエリuseDFE クエリヒントを含めることにより、DFE を無効にすることもできます。このクエリヒントを使用すると、DFE がその特定のクエリを実行しないようにできます。

インスタンスで DFE が有効になっているかどうかは、次のように インスタンスのステータス 呼び出しを使用して調べることができます。

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

次に、ステータス応答は DFE が有効かどうかを指定します。

{ "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"} }

Gremlin explain および profile 結果は、クエリが DFE によって実行されているかどうかを示します。  explain については Gremlin explain レポートに含まれる情報 を、profile については DFE profile レポート を参照してください。 

同様に SPARQL explain は、SPARQL クエリが DFE によって実行されているかどうかを示します。  詳細については、DFE が無効の場合の SPARQL explain 出力の例 および DFENodeoperator を参照してください。

Neptune DFE でサポートされているクエリコンストラクト

現在、Neptune DFE は SPARQL および Gremlin クエリコンストラクトのサブセットをサポートしています。

SPARQL の場合、これは結合サブセットの基本的なグラフパターンです。

Gremlin では、一般に、より複雑なステップを含まない一連のトラバーサルを含むクエリのサブセットです。

次のように、DFE によってクエリの 1 つが全体または一部で実行されているかどうかを確認できます。