Neptune SPARQLexplain演算子 - Amazon Neptune

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

Neptune SPARQLexplain演算子

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

重要

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

Aggregationoperator

1 つ以上の集計を実行し、count、、、 などのSPARQL集計演算子のセマンティクスを実装maxminsumします。

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 histogramDataflowOpプランの実行時間と各演算子が使用するCPU時間の内訳に関する詳細が含まれています。この下に、 によって実行された計画の詳細なランタイム統計を印刷する表がありますDFE。

注記

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

Distinctoperator

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

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

Federationoperator

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

引数
  • endpoint– (必須 ) SPARQLSERVICEステートメント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 – SPARQLOPTIONAL演算子セマンティクスを使用するoptional結合。

    • minusminusオペレーションは、SPARQLMINUS演算子セマンティクスを使用して、結合パートナーが存在しないマッピングを保持します。

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

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

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

MergeJoinoperator

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

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

NamedSubqueryoperator

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

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

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

PipelineJoinoperator

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

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

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

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

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

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

    • minusminusオペレーションは、SPARQLMINUS演算子セマンティクスを使用して、結合パートナーが存在しないマッピングを保持します。

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

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

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

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

PipelineCountJoinoperator

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

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

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

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

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

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

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

    • minusminusオペレーションは、SPARQLMINUS演算子セマンティクスを使用して、結合パートナーが存在しないマッピングを保持します。

    • 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 – SPARQLOPTIONAL演算子セマンティクスを使用するoptional結合。

    • minusminusオペレーションは、SPARQLMINUS演算子セマンティクスを使用して、結合パートナーが存在しないマッピングを保持します。

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

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

Projectionoperator

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

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

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

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

PropertyPathoperator

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

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

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

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

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

TermResolutionoperator

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

モード
  • value2id– リテラルや などの用語URIsを対応する内部 ID 値 (内部値にエンコード) にマッピングします。

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

引数
  • vars– (必須 ) 文字列または内部文字列をマッピングIDsする変数を指定します。

Sliceoperator

SPARQLLIMITOFFSET句のセマンティクスを使用して、受信ソリューションストリームにスライスを実装します。

引数
  • 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 –  (必須) ソース変数が比較されるターゲット変数。同調に成功した場合でも保持されます。