翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Neptune SPARQLexplain
演算子
以下のセクションでは、Amazon Neptune で現在利用可能なSPARQLexplain
機能の演算子とパラメータについて説明します。
重要
SPARQL explain
この機能はまだ改良中です。ここに記載されている演算子とパラメータは、今後のバージョンで変更される可能性があります。
トピック
- Aggregationoperator
- ConditionalRoutingoperator
- Copyoperator
- DFENodeoperator
- Distinctoperator
- Federationoperator
- Filteroperator
- HashIndexBuildoperator
- HashIndexJoinoperator
- MergeJoinoperator
- NamedSubqueryoperator
- PipelineJoinoperator
- PipelineCountJoinoperator
- PipelinedHashIndexJoinoperator
- Projectionoperator
- PropertyPathoperator
- TermResolutionoperator
- Sliceoperator
- SolutionInjectionoperator
- Sortoperator
- VariableAlignmentoperator
Aggregation
operator
1 つ以上の集計を実行し、count
、、、 などのSPARQL集計演算子のセマンティクスを実装max
min
sum
します。
Aggregation
には、オプションとして groupBy
を使用したグループ化、およびオプションとして having
制約が用意されています。
引数
groupBy
– (オプション) 着信ソリューションのグループ化の基盤となる連続式を指定するgroupBy
句を提供します。aggregates
– (必須) 集約式の順序リストを指定します。having
– (オプション ) SPARQLクエリのhaving
句で示されるように、グループをフィルタリングする制約を追加します。
ConditionalRouting
operator
指定された条件に基づいて、受信ソリューションをルーティングします。条件を満たすソリューションは、Out #1
に参照されるオペレーター ID にルーティングされます。条件を満たさないソリューションは、Out #2
に参照されるオペレーターにルーティングされません。
引数
condition
– (必須) ルーティング条件。
Copy
operator
指定されたモードに示されるように、ソリューションストームを委任します。
モード
forward
– ソリューションをOut #1
によって識別されるダウンストリーム演算子に転送します。duplicate
– ソリューションを複製し、それぞれをOut #1
およびOut #2
によって識別される 2 つの演算子に転送します。
Copy
には引数がありません。
DFENode
operator
この演算子は、DFE代替クエリエンジンによって実行されるプランの抽象化です。詳細なDFE計画は、この演算子の引数で説明されています。引数は、現在、DFEプランの詳細なランタイム統計を含むように過負荷になっています。これには、 によるクエリ実行のさまざまなステップに費やされた時間が含まれますDFE。
DFE クエリプランの論理的に最適化された抽象構文ツリー (AST) には、計画中に考慮された演算子タイプと、演算子を実行するための関連するベストケースとワーストケースのコストに関する情報が印刷されます。は現在、次のタイプのノードASTで構成されています。
DFEJoinGroupNode
– 1 つ以上のDFEPatternNodes
の結合を表します。DFEPatternNode
- 基礎となるデータベースから一致するタプルが投影される基になるパターンを括弧で囲みます。
サブセクション にはStatistics & Operator histogram
、DataflowOp
プランの実行時間と各演算子が使用するCPU時間の内訳に関する詳細が含まれています。この下に、 によって実行された計画の詳細なランタイム統計を印刷する表がありますDFE。
注記
DFE はラボモードでリリースされた実験的な機能であるため、explain
出力の正確な形式が変わる可能性があります。
Distinct
operator
変数のサブセットにおける個別の射影を計算し、重複を排除します。その結果、流入するソリューションの数は流出するソリューションの数より大きいかあるいは等しくなります。
引数
vars
– (必須)Distinct
射影を適用する変数。
Federation
operator
指定されたクエリを指定されたリモートSPARQLエンドポイントに渡します。
引数
endpoint
– (必須 ) SPARQLSERVICE
ステートメントURL内のエンドポイント。これは定数文字列にすることができます。または、クエリエンドポイントが同じクエリ内の変数に基づいて決定される場合は、変数名にすることができます。query
– (必須) リモートエンドポイントに送信される、再構築されたクエリ文字列。エンジンは、クライアントが指定されていない場合でも、このクエリにデフォルトのプレフィックスを追加します。silent
– (必須)SILENT
キーワードがキーワードの後に表示されるかどうかを示すブール値。SILENT
は、リモートSERVICE
部分が失敗してもクエリ全体が失敗しないようにエンジンに指示します。
Filter
operator
着信ソリューションをフィルタリングします。フィルタリング条件を満たすソリューションのみがアップストリームに転送され、その他すべては削除されます。
引数
condition
– (必須) フィルタリング条件。
HashIndexBuild
operator
バインドのリストを取得し、solutionSet
引数で定義される名前を持つハッシュインデックスにこのリストをスプールします。通常は、以降の演算子の実行は、名前を参照して、この一連のソリューションに対して結合します。
引数
solutionSet
– (必須) 一連のハッシュインデックスソリューションの名前。-
sourceType
– (必須) ハッシュインデックスに保存されるバインドが取得される元のソースのタイプ。pipeline
– 演算子パイプラインのダウンストリーム演算子から着信するソリューションをハッシュインデックスにスプールします。binding set
–sourceBindingSet
引数によって指定される一連の固定バインドをハッシュインデックスにスプールします。
sourceBindingSet
– (オプション)sourceType
引数の値がbinding set
の場合、この引数はハッシュインデックスにスプールされる一連の静的バインドを指定します。
HashIndexJoin
operator
solutionSet
引数によって識別されるハッシュインデックスに対する着信ソリューションを結合します。
引数
solutionSet
– (必須) 結合するソリューションの名前。これは、HashIndexBuild
演算子を使用して前のステップで作成したハッシュインデックスである必要があります。-
joinType
– (必須) 実行する結合のタイプ。join
– 共有するすべての変数間における完全な一致を必要とする、通常結合です。optional
– SPARQLOPTIONAL
演算子セマンティクスを使用するoptional
結合。minus
–minus
オペレーションは、SPARQLMINUS
演算子セマンティクスを使用して、結合パートナーが存在しないマッピングを保持します。existence check
– 結合パートナーがあるかどうかを確認し、この確認の結果にexistenceCheckResultVar
変数をバインドします。
constraints
– (オプション) 結合中に考慮される追加の結合制約。これらの制約を満たさない結合は、除外されます。existenceCheckResultVar
– (オプション)joinType
がexistence check
と等しくなる結合のみに使用されます (前のjoinType
引数を参照)。
MergeJoin
operator
solutionSets
引数によって識別される、一連の複数のソリューション間のマージ結合。
引数
solutionSets
– (必須) 一緒に結合する一連のソリューション。
NamedSubquery
operator
subQuery
引数によって識別されるサブクエリの評価をトリガーし、その結果を solutionSet
引数によって指定される一連のソリューション内にスプールします。演算子の着信ソリューションはサブクエリに転送され、その後次の演算子に転送されます。
引数
subQuery
– (必須) 評価するサブクエリの名前。サブクエリは出力で明示的にレンダリングされます。solutionSet
– (必須) サブクエリの結果を保存する一連のソリューションの名前。
PipelineJoin
operator
前の演算子の出力を入力として受け取り、これを pattern
引数によって定義されるタプルパターンに結合します。
引数
pattern
– (必須 ) 結合の下にある subject-predicate-objectとオプションで グラフタプルの形式をとるパターン。パターンにdistinct
が指定されている場合、この結合は、すべての一致するソリューションではなく、projectionVars
引数によって指定される射影変数からの重複排除ソリューションのみを抽出します。inlineFilters
– (オプション) パターンで変数に適用される一連のフィルター。パターンはこれらのフィルターと組み合わせて評価されます。-
joinType
– (必須) 実行する結合のタイプ。join
– 共有するすべての変数間における完全な一致を必要とする、通常結合です。optional
– SPARQLOPTIONAL
演算子セマンティクスを使用するoptional
結合。minus
–minus
オペレーションは、SPARQLMINUS
演算子セマンティクスを使用して、結合パートナーが存在しないマッピングを保持します。existence check
– 結合パートナーがあるかどうかを確認し、この確認の結果にexistenceCheckResultVar
変数をバインドします。
constraints
– (オプション) 結合中に考慮される追加の結合制約。これらの制約を満たさない結合は、除外されます。projectionVars
– (オプション) 射影変数。distinct := true
と組み合わせて使用され、指定した一連の変数から重複を排除した射影の抽出を強制します。cutoffLimit
– (オプション) 抽出された結合パートナーの数のカットオフ制限。デフォルトによる制限はありませんが、結合パートナーがあることを証明あるいは否定するために十分な場合に、FILTER (NOT) EXISTS
句を実装する結合を実行するときにこれを 1 に設定できます。
PipelineCountJoin
operator
PipelineJoin
の変形。結合の代わりに、一致する結合パートナーを単にカウントし、countVar
引数によって指定される変数にこのカウントをバインドします。
引数
countVar
– (必須) カウントの結果の変数、つまり結合パートナーの数がバインドされる必要があります。pattern
– (必須 ) パターン。 の形式をとり subject-predicate-object、オプションで結合の下にあるグラフタプルを使用します。パターンにdistinct
が指定されている場合、この結合は、すべての一致するソリューションではなく、projectionVars
引数によって指定される射影変数からの重複排除ソリューションのみを抽出します。inlineFilters
– (オプション) パターンで変数に適用される一連のフィルター。パターンはこれらのフィルターと組み合わせて評価されます。-
joinType
– (必須) 実行する結合のタイプ。join
– 共有するすべての変数間における完全な一致を必要とする、通常結合です。optional
– SPARQLOPTIONAL
演算子セマンティクスを使用するoptional
結合。minus
–minus
オペレーションは、SPARQLMINUS
演算子セマンティクスを使用して、結合パートナーが存在しないマッピングを保持します。existence check
– 結合パートナーがあるかどうかを確認し、この確認の結果にexistenceCheckResultVar
変数をバインドします。
constraints
– (オプション) 結合中に考慮される追加の結合制約。これらの制約を満たさない結合は、除外されます。projectionVars
– (オプション) 射影変数。distinct := true
と組み合わせて使用され、指定した一連の変数から重複を排除した射影の抽出を強制します。cutoffLimit
– (オプション) 抽出された結合パートナーの数のカットオフ制限。デフォルトによる制限はありませんが、結合パートナーがあることを証明あるいは否定するために十分な場合に、FILTER (NOT) EXISTS
句を実装する結合を実行するときにこれを 1 に設定できます。
PipelinedHashIndexJoin
operator
これはビルド all-in-oneハッシュインデックスと結合演算子です。バインディングのリストを取得してハッシュインデックスにスプールし、そのハッシュインデックスに対して受信ソリューションを結合します。
引数
-
sourceType
– (必須) ハッシュインデックスに保存されるバインドが取得される元のソースのタイプ。pipeline
–PipelinedHashIndexJoin
は、演算子パイプラインのダウンストリームの演算子から着信するソリューションをハッシュインデックスにスプールします。binding set
–PipelinedHashIndexJoin
は、sourceBindingSet
引数によって指定された固定バインドセットをハッシュインデックスにスプールします。
sourceSubQuery
— (オプション)sourceType
引数の値がpipeline
の場合、この引数は、評価されてハッシュインデックスにスプールされるサブクエリを指定します。sourceBindingSet
– (オプション)sourceType
引数の値がbinding set
の場合、この引数はハッシュインデックスにスプールされる静的バインドセットを指定します。-
joinType
– (必須) 実行される結合のタイプ。join
– 共有するすべての変数間における完全な一致を必要とする、通常結合です。optional
– SPARQLOPTIONAL
演算子セマンティクスを使用するoptional
結合。minus
–minus
オペレーションは、SPARQLMINUS
演算子セマンティクスを使用して、結合パートナーが存在しないマッピングを保持します。existence check
– 結合パートナーがあるかどうかを確認し、この確認の結果にexistenceCheckResultVar
変数をバインドします。
existenceCheckResultVar
– (オプション )joinType
等しい結合にのみ使用されますexistence check
(上記の joinType 引数を参照)。
Projection
operator
変数のサブセット間で射影を行います。流入するソリューションの数は流出するソリューションの数と同じですが、ソリューションの形はモードの設定に応じて異なります。
モード
retain
–vars
引数によって指定される変数のみをソリューションに保持します。drop
–vars
引数によって指定されるすべての変数を除外します。
引数
vars
– (必須) モード設定に応じて、変数を保持あるいは除外します。
PropertyPath
operator
次のような再帰的なプロパティパスを有効にします。+
または*
。Neptune は、iterationTemplate
引数によって指定されるテンプレートに基づく固定小数点反復アプローチを実装します。既知の左側または右側の変数は、新しいソリューションが見つからなくなるまで、すべての固定小数点反復のテンプレートにバインドされます。
引数
iterationTemplate
– (必須) 固定小数点反復を実装するために使用されるサブクエリテンプレートの名前です。leftTerm
– (必須) プロパティパスの左側の項目 (変数あるいは定数) です。rightTerm
– (必須) プロパティパスの右側の項目 (変数あるいは定数) です。lowerBound
– (必須) 固定小数点反復の下限 (*
クエリでは0
、または+
クエリでは1
)。
TermResolution
operator
モードに応じて、内部文字列識別子の値を対応する外部の文字列に変換するか、または外部文字列を内部文字列識別子の値に変換します。
モード
value2id
– リテラルや などの用語URIsを対応する内部 ID 値 (内部値にエンコード) にマッピングします。id2value
– 内部 ID 値をリテラルや URIs (内部値のデコード) などの対応する用語にマッピングします。
引数
vars
– (必須 ) 文字列または内部文字列をマッピングIDsする変数を指定します。
Slice
operator
SPARQLLIMIT
と OFFSET
句のセマンティクスを使用して、受信ソリューションストリームにスライスを実装します。
引数
limit
– (オプション) 転送されるソリューションの制限。offset
– (オプション) ソリューションが転送のために評価されるオフセット。
SolutionInjection
operator
入力を受け取りません。クエリプランにソリューションを静的に挿入し、これを solutions
引数に記録します。
クエリプランは常にこの静的挿入で始まります。静的バインドの複数のソースを組み合わせることで (VALUES
や BIND
句からなど)、挿入する静的ソリューションがクエリ自身から配信されることができる場合、SolutionInjection
演算子は配信されたこれらの静的ソリューションを挿入します。シンプルなケースでは、これらは外部の VALUES
句によって示されるバインドを反映します。
クエリから配信される静的ソリューションがない場合、SolutionInjection
はユニバーサルソリューションと呼ばれる空を挿入します。これは、クエリ評価プロセスを通して展開し、乗算されます。
引数
solutions
– (必須) 演算子によって挿入されるソリューションのシーケンス。
Sort
operator
指定されたソート条件を使用して、一連のソリューションをソートします。
引数
sortOrder
– (必須) 変数の注文リスト。各変数にはASC
(昇順) またはDESC
(降順) 識別子が含まれ、一連のソリューションをソートするために順次使用されます。
VariableAlignment
operator
ソリューションを 1 つ 1 つ検査し、2 つの変数 (指定された sourceVar
および 指定された targetVar
) でそれぞれに配列を実行します。
ソリューションの sourceVar
および targetVar
に同じ値がある場合、この変数は同調している考慮され、このソリューションは転送されます。重複した sourceVar
は排除されます。
変数が異なる値にバインドされる場合、このソリューションは全体的に除外されます。
引数
sourceVar
– (必須) ターゲット変数と比較されるソース変数。ソリューションで同調に成功した場合、これは、2 つの変数に同じ値があり、ソース変数が排除されることになります。targetVar
– (必須) ソース変数が比較されるターゲット変数。同調に成功した場合でも保持されます。