Neptune SPARQL explain 演算子 - Amazon Neptune

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

Neptune SPARQL explain 演算子

以下のセクションでは、Amazon Neptune で現在使用できる SPARQL explain 機能の演算子とパラメータについて説明しています。

重要

SPARQL explain 機能は今後も改良されます。ここに記載されている演算子とパラメータは、今後のバージョンで変更される可能性があります。

Aggregationoperator

SPARQL 集約演算のセマンティクス (countmaxminsum など) を実装した 1 つ以上の集計を実行します。

Aggregation には、オプションとして groupBy を使用したグループ化、およびオプションとして having 制約が用意されています。

引数
  • groupBy – (オプション) 着信ソリューションのグループ化の基盤となる連続式を指定する groupBy 句を提供します。

  • aggregates –  (必須) 集約式の順序リストを指定します。

  • having – (オプション) SPARQL クエリ内の having 句に指定されるように、グループに制約フィルターを追加します。

ConditionalRoutingoperator

指定された条件に基づいて、受信ソリューションをルーティングします。条件を満たすソリューションは、Out #1 に参照されるオペレーター ID にルーティングされます。条件を満たさないソリューションは、Out #2 に参照されるオペレーターにルーティングされません。

引数
  • condition – (必須) ルーティング条件。

Copyoperator

指定されたモードに示されるように、ソリューションストームを委任します。

モード
  • forward – ソリューションを Out #1 によって識別されるダウンストリーム演算子に転送します。

  • duplicate – ソリューションを複製し、それぞれを Out #1 および Out #2 によって識別される 2 つの演算子に転送します。

Copy には引数がありません。

DFENodeoperator

この演算子は、DFE 代替クエリエンジンによって実行されるプランの抽象化です。詳細な DFE 計画は、この演算子の引数に概説されています。引数は現在、DFE プランの詳細なランタイム統計を含むようにオーバーロードされています。これには、DFE によるクエリ実行のさまざまなステップに費やされた時間が含まれます。

DFE クエリプランの論理最適化抽象構文ツリー (AST) には、計画中に考慮された演算子タイプに関する情報と、演算子の実行に関連する最良および最悪の場合のコストが出力されます。AST は、現時点で次のタイプのノードで構成されています。

  • DFEJoinGroupNode   –   1 つ以上の DFEPatternNodes の結合を表します。

  • DFEPatternNode - 基礎となるデータベースから一致するタプルが投影される基になるパターンを括弧で囲みます。

サブセクション、Statistics & Operator histogram には、各オペレータが使用するCPU時間の DataflowOp 計画と内訳の実行時間に関する詳細が含まれています。この下に、DFE によって実行されるプランの詳細なランタイム統計を出力する表があります。

注記

DFE はラボモードでリリースされる実験的な機能なので、explain 出力は変更される可能性があります。

Distinctoperator

変数のサブセットにおける個別の射影を計算し、重複を排除します。その結果、流入するソリューションの数は流出するソリューションの数より大きいかあるいは等しくなります。

引数
  • vars – (必須) Distinct 射影を適用する変数。

Federationoperator

指定されたクエリを指定されたリモート SPARQL エンドポイントに渡します。

引数
  • endpoint – (必須) SPARQL SERVICE ステートメントのエンドポイント URL。これは定数文字列にすることができます。または、クエリエンドポイントが同じクエリ内の変数に基づいて決定される場合は、変数名にすることができます。

  • query – (必須) リモートエンドポイントに送信される、再構築されたクエリ文字列。エンジンは、クライアントが指定されていない場合でも、このクエリにデフォルトのプレフィックスを追加します。

  • silent – (必須) SILENT キーワードがキーワードの後に表示されるかどうかを示すブール値。SILENT は、リモート SERVICE 部分が失敗してもクエリ全体が失敗しないようにエンジンに指示します。

Filteroperator

着信ソリューションをフィルタリングします。フィルタリング条件を満たすソリューションのみがアップストリームに転送され、その他すべては削除されます。

引数
  • condition – (必須) フィルタリング条件。

HashIndexBuildoperator

バインドのリストを取得し、solutionSet 引数で定義される名前を持つハッシュインデックスにこのリストをスプールします。通常は、以降の演算子の実行は、名前を参照して、この一連のソリューションに対して結合します。

引数
  • solutionSet – (必須) 一連のハッシュインデックスソリューションの名前。

  • sourceType – (必須) ハッシュインデックスに保存されるバインドが取得される元のソースのタイプ。

    • pipeline – 演算子パイプラインのダウンストリーム演算子から着信するソリューションをハッシュインデックスにスプールします。

    • binding setsourceBindingSet 引数によって指定される一連の固定バインドをハッシュインデックスにスプールします。

  • sourceBindingSet – (オプション) sourceType 引数の値が binding set の場合、この引数はハッシュインデックスにスプールされる一連の静的バインドを指定します。

HashIndexJoinoperator

solutionSet 引数によって識別されるハッシュインデックスに対する着信ソリューションを結合します。

引数
  • solutionSet – (必須) 結合するソリューションの名前。これは、HashIndexBuild 演算子を使用して前のステップで作成したハッシュインデックスである必要があります。

  • joinType – (必須) 実行する結合のタイプ。

    • join – 共有するすべての変数間における完全な一致を必要とする、通常結合です。

    • optional – SPARQL OPTIONAL 演算子セマンティクスを使用する optional 結合。

    • minus – SPARQL MINUS 演算子セマンティクスを使用した、結合パートナーが存在しないマッピングがある minus 演算。

    • existence check – 結合パートナーがあるかどうかを確認し、この確認の結果に existenceCheckResultVar 変数をバインドします。

  • constraints – (オプション) 結合中に考慮される追加の結合制約。これらの制約を満たさない結合は、除外されます。

  • existenceCheckResultVar – (オプション) joinTypeexistence check と等しくなる結合のみに使用されます (前の joinType 引数を参照)。

MergeJoinoperator

solutionSets 引数によって識別される、一連の複数のソリューション間のマージ結合。

引数
  • solutionSets –  (必須) 一緒に結合する一連のソリューション。

NamedSubqueryoperator

subQuery 引数によって識別されるサブクエリの評価をトリガーし、その結果を solutionSet 引数によって指定される一連のソリューション内にスプールします。演算子の着信ソリューションはサブクエリに転送され、その後次の演算子に転送されます。

引数
  • subQuery –  (必須) 評価するサブクエリの名前。サブクエリは出力で明示的にレンダリングされます。

  • solutionSet –  (必須) サブクエリの結果を保存する一連のソリューションの名前。

PipelineJoinoperator

前の演算子の出力を入力として受け取り、これを pattern 引数によって定義されるタプルパターンに結合します。

引数
  • pattern– (必須) パターン。 の形式をとり subject-predicate-object、オプションで結合の背後にある -graph タプルを使用します。パターンに distinct が指定されている場合、この結合は、すべての一致するソリューションではなく、projectionVars 引数によって指定される射影変数からの重複排除ソリューションのみを抽出します。

  • inlineFilters – (オプション) パターンで変数に適用される一連のフィルター。パターンはこれらのフィルターと組み合わせて評価されます。

  • joinType – (必須) 実行する結合のタイプ。

    • join – 共有するすべての変数間における完全な一致を必要とする、通常結合です。

    • optional – SPARQL OPTIONAL 演算子セマンティクスを使用する optional 結合。

    • minus – SPARQL MINUS 演算子セマンティクスを使用した、結合パートナーが存在しないマッピングがある minus 演算。

    • existence check – 結合パートナーがあるかどうかを確認し、この確認の結果に existenceCheckResultVar 変数をバインドします。

  • constraints – (オプション) 結合中に考慮される追加の結合制約。これらの制約を満たさない結合は、除外されます。

  • projectionVars – (オプション) 射影変数。distinct := true と組み合わせて使用され、指定した一連の変数から重複を排除した射影の抽出を強制します。

  • cutoffLimit – (オプション) 抽出された結合パートナーの数のカットオフ制限。デフォルトによる制限はありませんが、結合パートナーがあることを証明あるいは否定するために十分な場合に、FILTER (NOT) EXISTS 句を実装する結合を実行するときにこれを 1 に設定できます。

PipelineCountJoinoperator

PipelineJoin の変形。結合の代わりに、一致する結合パートナーを単にカウントし、countVar 引数によって指定される変数にこのカウントをバインドします。

引数
  • countVar –  (必須) カウントの結果の変数、つまり結合パートナーの数がバインドされる必要があります。

  • pattern– (必須) パターン。 の形式をとり subject-predicate-object、オプションで結合の背後にある -graph タプルを取ります。パターンに distinct が指定されている場合、この結合は、すべての一致するソリューションではなく、projectionVars 引数によって指定される射影変数からの重複排除ソリューションのみを抽出します。

  • inlineFilters – (オプション) パターンで変数に適用される一連のフィルター。パターンはこれらのフィルターと組み合わせて評価されます。

  • joinType – (必須) 実行する結合のタイプ。

    • join – 共有するすべての変数間における完全な一致を必要とする、通常結合です。

    • optional – SPARQL OPTIONAL 演算子セマンティクスを使用する optional 結合。

    • minus – SPARQL MINUS 演算子セマンティクスを使用した、結合パートナーが存在しないマッピングがある minus 演算。

    • existence check – 結合パートナーがあるかどうかを確認し、この確認の結果に existenceCheckResultVar 変数をバインドします。

  • constraints – (オプション) 結合中に考慮される追加の結合制約。これらの制約を満たさない結合は、除外されます。

  • projectionVars – (オプション) 射影変数。distinct := true と組み合わせて使用され、指定した一連の変数から重複を排除した射影の抽出を強制します。

  • cutoffLimit – (オプション) 抽出された結合パートナーの数のカットオフ制限。デフォルトによる制限はありませんが、結合パートナーがあることを証明あるいは否定するために十分な場合に、FILTER (NOT) EXISTS 句を実装する結合を実行するときにこれを 1 に設定できます。

PipelinedHashIndexJoinoperator

これは all-in-one ビルドハッシュインデックスおよび結合演算子です。バインディングのリストを取得してハッシュインデックスにスプールし、そのハッシュインデックスに対して受信ソリューションを結合します。

引数
  • sourceType – (必須) ハッシュインデックスに保存されるバインドが取得される元のソースのタイプ。

    • pipelinePipelinedHashIndexJoin は、演算子パイプラインのダウンストリームの演算子から着信するソリューションをハッシュインデックスにスプールします。

    • binding setPipelinedHashIndexJoin は、sourceBindingSet 引数によって指定された固定バインドセットをハッシュインデックスにスプールします。

  • sourceSubQuery — (オプション) sourceType 引数の値が pipeline の場合、この引数は、評価されてハッシュインデックスにスプールされるサブクエリを指定します。

  • sourceBindingSet  – (オプション) sourceType 引数の値が binding set の場合、この引数はハッシュインデックスにスプールされる静的バインドセットを指定します。

  • joinType – (必須) 実行される結合のタイプ。

    • join – 共有するすべての変数間における完全な一致を必要とする、通常結合です。

    • optional – SPARQL OPTIONAL 演算子セマンティクスを使用する optional 結合。

    • minus – SPARQL MINUS 演算子セマンティクスを使用した、結合パートナーが存在しないマッピングがある minus 演算。

    • existence check – 結合パートナーがあるかどうかを確認し、この確認の結果に existenceCheckResultVar 変数をバインドします。

  • existenceCheckResultVar – (オプション) joinTypeexistence check に等しい場合にのみ、結合に使用されます (前の joinType 引数を参照)。

Projectionoperator

変数のサブセット間で射影を行います。流入するソリューションの数は流出するソリューションの数と同じですが、ソリューションの形はモードの設定に応じて異なります。

モード
  • retain – vars 引数によって指定される変数のみをソリューションに保持します。

  • drop – vars 引数によって指定されるすべての変数を除外します。

引数
  • vars –  (必須) モード設定に応じて、変数を保持あるいは除外します。

PropertyPathoperator

次のような再帰的なプロパティパスを有効にします。+ または*。Neptune は、iterationTemplate 引数によって指定されるテンプレートに基づく固定小数点反復アプローチを実装します。既知の左側または右側の変数は、新しいソリューションが見つからなくなるまで、すべての固定小数点反復のテンプレートにバインドされます。

引数
  • iterationTemplate –  (必須) 固定小数点反復を実装するために使用されるサブクエリテンプレートの名前です。

  • leftTerm –  (必須) プロパティパスの左側の項目 (変数あるいは定数) です。

  • rightTerm –  (必須) プロパティパスの右側の項目 (変数あるいは定数) です。

  • lowerBound –  (必須) 固定小数点反復の下限 (* クエリでは 0、または + クエリでは 1)。

TermResolutionoperator

モードに応じて、内部文字列識別子の値を対応する外部の文字列に変換するか、または外部文字列を内部文字列識別子の値に変換します。

モード
  • value2id – 内部 ID の値に対応するリテラルや URI などのマップ項目 (内部値にエンコード)。

  • id2value – 内部 ID をリテラルや URI など対応する項目にマッピングします (内部値にデコード)。

引数
  • vars –  (必須) マップする必要がある文字列あるいは内部文字列 ID の変数を指定します。

Sliceoperator

SPARQL の LIMIT および OFFSET 句のセマンティクスを使用して、着信ソリューションストリームにスライスを実装します。

引数
  • limit – (オプション) 転送されるソリューションの制限。

  • offset – (オプション) ソリューションが転送のために評価されるオフセット。

SolutionInjectionoperator

入力を受け取りません。クエリプランにソリューションを静的に挿入し、これを solutions 引数に記録します。

クエリプランは常にこの静的挿入で始まります。静的バインドの複数のソースを組み合わせることで (VALUESBIND 句からなど)、挿入する静的ソリューションがクエリ自身から配信されることができる場合、SolutionInjection 演算子は配信されたこれらの静的ソリューションを挿入します。シンプルなケースでは、これらは外部の VALUES 句によって示されるバインドを反映します。

クエリから配信される静的ソリューションがない場合、SolutionInjection はユニバーサルソリューションと呼ばれる空を挿入します。これは、クエリ評価プロセスを通して展開し、乗算されます。

引数
  • solutions –  (必須) 演算子によって挿入されるソリューションのシーケンス。

Sortoperator

指定されたソート条件を使用して、一連のソリューションをソートします。

引数
  • sortOrder –  (必須) 変数の注文リスト。各変数には ASC (昇順) または DESC (降順) 識別子が含まれ、一連のソリューションをソートするために順次使用されます。

VariableAlignmentoperator

ソリューションを 1 つ 1 つ検査し、2 つの変数 (指定された sourceVar および 指定された targetVar) でそれぞれに配列を実行します。

ソリューションの sourceVar および targetVar に同じ値がある場合、この変数は同調している考慮され、このソリューションは転送されます。重複した sourceVar は排除されます。

変数が異なる値にバインドされる場合、このソリューションは全体的に除外されます。

引数
  • sourceVar –  (必須) ターゲット変数と比較されるソース変数。ソリューションで同調に成功した場合、これは、2 つの変数に同じ値があり、ソース変数が排除されることになります。

  • targetVar –  (必須) ソース変数が比較されるターゲット変数。同調に成功した場合でも保持されます。