SPARQL クエリヒント - Amazon Neptune

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

SPARQL クエリヒント

クエリヒントを使用して、Amazon Neptune 内の特定のSPARQLクエリの最適化戦略と評価戦略を指定できます。

クエリヒントは、SPARQLクエリに埋め込まれた追加の 3 つのパターンを使用して、次の部分で表現されます。

scope hint value
  • scope - クエリ内の特定のグループまたは完全なクエリなど、クエリヒントが適用されるクエリの部分を決定します。

  • hint – 適用するヒントのタイプを特定します。

  • value – 検討中のシステムアスペクトの動作を決めます。

クエリのヒントとスコープは、Amazon Neptune 名前空間 http://aws.amazon.com/neptune/vocab/v01/QueryHints# の事前定義された条件として表示されます。このセクションの例には、クエリで定義され、クエリに含まれている hint プレフィックスとして名前空間が含まれています。

PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#>

たとえば、以下は SELECT クエリに joinOrder ヒントを含める方法を示します。

PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#> SELECT ... { hint:Query hint:joinOrder "Ordered" . ... }

前述のクエリは、Neptune エンジンに、クエリ内の結合を評価するように指示します。指定された順序付けを行い、自動並べ替えを無効にします。

クエリヒントを使用するときは、以下について検討します。

  • 単一のクエリでさまざまなクエリヒントを組み合わせることができます。たとえば、ボトムアップ評価のためにサブクエリに注釈を追加するには bottomUp クエリヒントを使用できます。また、サブクエリ内の結合の順序を修正するには joinOrder クエリヒントを使用できます。

  • 別の重複していないスコープで同じクエリを複数回使用できます。

  • クエリヒントはヒントです。クエリエンジンは通常、特定のクエリヒントを考慮することを目的としていますが、それらを無視することもあります。

  • クエリヒントはセマンティクスを維持します。クエリヒントを追加しても、クエリの出力は変更されません (順序付けの保証がない場合、つまり、ORDERBY を使用して結果の順序が明示的に強制されていない場合の潜在的な結果の順序を除く)。

以下のセクションでは、Neptune で使用可能なクエリヒントとその使用方法に関する詳しい情報が記載されています。

Neptune でのSPARQLクエリヒントの範囲

次の表は、Amazon Neptune で使用可能なスコープ、関連するヒント、およびSPARQLクエリヒントの説明を示しています。これらのエントリの hint プレフィックスは、ヒントの Neptune 名前空間を表します。

PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#>
スコープ サポートされるヒント 説明
hint:Query

joinOrder

クエリヒントはクエリ全体に適用されます。
hint:Query

queryTimeout

タイムアウト値はクエリ全体に適用されます。
hint:Query

rangeSafe

タイプ昇格は、クエリ全体に対して無効になっています。
hint:Query

queryId

クエリ ID 値はクエリ全体に適用されます。
hint:Query

の使用DFE

の使用はDFE、クエリ全体で有効 (または無効) になります。
hint:Group

joinOrder

クエリヒントは指定されたグループの最上位の要素に適用されますが、ネストされた要素 (サブクエリなど) や親要素には適用されません。
hint:SubQuery

evaluationStrategy

ヒントが指定され、ネストされたSELECTサブクエリに適用されます。サブクエリの前に計算されたソリューションを考慮せずに、サブクエリは個別に評価されます。