Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Neptun-Operatoren SPARQL explain
In den folgenden Abschnitten werden die Operatoren und Parameter für die SPARQL explain
Funktion beschrieben, die derzeit in Amazon Neptune verfügbar ist.
Wichtig
Die SPARQL explain
Funktion wird noch verfeinert. Die hier dokumentierten Operatoren und Parameter unterliegen möglicherweise Änderungen in zukünftigen Versionen.
Themen
- Aggregation-Operator
- ConditionalRouting-Operator
- Copy-Operator
- DFENode-Operator
- Distinct-Operator
- Federation-Operator
- Filter-Operator
- HashIndexBuild-Operator
- HashIndexJoin-Operator
- MergeJoin-Operator
- NamedSubquery-Operator
- PipelineJoin-Operator
- PipelineCountJoin-Operator
- PipelinedHashIndexJoin-Operator
- Projection-Operator
- PropertyPath-Operator
- TermResolution-Operator
- Slice-Operator
- SolutionInjection-Operator
- Sort-Operator
- VariableAlignment-Operator
Aggregation
-Operator
Führt eine oder mehrere Aggregationen durch und implementiert dabei die Semantik von SPARQL Aggregationsoperatoren wie count
max
,min
,sum
, usw.
Aggregation
verfügt über optionale Gruppierung mithilfe von groupBy
-Klauseln sowie über optionale having
-Einschränkungen.
Argumente
groupBy
– (Optional) Stellt diegroupBy
-Klausel zur Angabe der Abfolge von Ausdrücken je nach Gruppierung der eingehenden Lösungen bereit.aggregates
– (Erforderlich) Gibt eine geordnete Liste von Aggregationsausdrücke an.having
— (Optional) Fügt Einschränkungen hinzu, um nach Gruppen zu filtern, wie in derhaving
Klausel in der Abfrage impliziert. SPARQL
ConditionalRouting
-Operator
Leitet eingehende Lösungen auf Grundlage einer bestimmten Bedingung weiter. Lösungen, die die Bedingung erfüllen, werden an die Operator-ID weitergeleitet, die von Out #1
verwiesen wurde. Dagegen werden Lösungen, die die Bedingung nicht erfüllen, an den Operator weitergeleitet, der von Out #2
verwiesen wird.
Argumente
condition
– (Erforderlich) Die Weiterleitungsbedingung.
Copy
-Operator
Delegiert den Lösungs-Stream auf die vom angegebenen Modus bestimmte Weise.
Modi
forward
– Leitet die Lösungen an den Downstream-Operator weiter, wie vonOut #1
identifiziert.duplicate
– Dupliziert die Lösungen und leitet sie an beide Operatoren weiter, die vonOut #1
undOut #2
identifiziert werden.
Copy
hat keine Argumente.
DFENode
-Operator
Dieser Operator ist eine Abstraktion des Plans, der von der DFE alternativen Abfrage-Engine ausgeführt wird. Der detaillierte DFE Plan ist in den Argumenten für diesen Operator beschrieben. Das Argument ist derzeit überladen, um die detaillierten Laufzeitstatistiken des DFE Plans zu enthalten. Es enthält die Zeit, die von für die verschiedenen Schritte der Abfrageausführung aufgewendet wurdeDFE.
Der logisch optimierte abstrakte Syntaxbaum (AST) für den DFE Abfrageplan wird mit Informationen zu den Operatortypen gedruckt, die bei der Planung berücksichtigt wurden, und zu den damit verbundenen Kosten für die Ausführung der Operatoren im besten und schlechtesten Fall. Der AST besteht derzeit aus den folgenden Knotentypen:
DFEJoinGroupNode
– Stellt die Vereinigung eines oder mehrererDFEPatternNodes
dar.DFEPatternNode
– Kapselt ein zugrundeliegendes Muster mit den übereinstimmenden Tupeln, die aus der zugrunde liegenden Datenbank projiziert werden.
Der Unterabschnitt,Statistics & Operator histogram
, enthält Einzelheiten zur Ausführungszeit des DataflowOp
Plans und zur Aufschlüsselung der von den einzelnen Operatoren benötigten CPU Zeit. Darunter befindet sich eine Tabelle, die detaillierte Laufzeitstatistiken des von DFE ausgeführten Plans ausgibt.
Anmerkung
Da DFE es sich um eine experimentelle Funktion handelt, die im Labormodus veröffentlicht wurde, kann sich das genaue explain
Ausgabeformat ändern.
Distinct
-Operator
Berechnet die unterschiedliche Projektion bei einer Teilmenge der Variablen, sodass Duplikate vermieden werden. Dies hat zur Folge, dass die Anzahl eingehender Lösungen größer oder gleich der Anzahl der ausgehenden Lösungen ist.
Argumente
vars
– (Erforderlich) Die Variablen, auf die dieDistinct
-Projektion angewendet werden soll.
Federation
-Operator
Leitet eine angegebene Abfrage an einen angegebenen SPARQL Remote-Endpunkt weiter.
Argumente
endpoint
— (Erforderlich) Der Endpunkt URL in der SPARQLSERVICE
Anweisung. Dies kann eine konstante Zeichenfolge sein, oder, wenn der Abfrageendpunkt basierend auf einer Variablen innerhalb derselben Abfrage bestimmt wird, kann es sich um den Variablennamen handeln.query
– (Erforderlich) Die rekonstruierte Abfragezeichenfolge, die an den Remote-Endpunkt gesendet werden soll. Die Engine fügt dieser Abfrage Standardpräfixe hinzu, auch wenn der Client keine angibt.silent
– (Erforderlich) Ein boolescher Wert, der angibt, ob das SchlüsselwortSILENT
nach dem Schlüsselwort angezeigt wurde.SILENT
weist die Engine an, bei einem Fehlschlag vonSERVICE
nicht die gesamte Abfrage fehlschlagen zu lassen.
Filter
-Operator
Filtert die eingehenden Lösungen. Nur Lösungen, die die Filterbedingung erfüllen, werden an die Upstream-Operator weitergeleitet. Alle anderen werden gelöscht.
Argumente
condition
– (Erforderlich) Die Filterbedingung.
HashIndexBuild
-Operator
Übernimmt eine Liste der Bindungen und spult sie in einem Hash-Index, dessen Name vom solutionSet
-Argument definiert wird. In der Regel führen nachfolgende Operatoren Joins für diesen Lösungssatz aus und verweisen ihn mit diesem Namen.
Argumente
solutionSet
– (Erforderlich) Der Name des Hash-Index-Lösungssatzes.-
sourceType
– (Required) Der Typ der Quelle, aus der die Bindungen für die Speicherung im Hash-Index abgerufen werden:pipeline
– Spult die eingehenden Lösungen aus dem Downstream-Operator in der Operator-Pipeline in den Hash-Index.binding set
– Spult den vomsourceBindingSet
-Argument angegebenen festen Bindungssatz in den Hash-Index.
sourceBindingSet
– (Optional) Wenn das ArgumentsourceType
den Wertbinding set
hat, gibt dieses Argument den statischen Bindungssatz an, der in den Hash-Index gespult werden soll.
HashIndexJoin
-Operator
Verbindet die eingehenden Lösungen für den Lösungssatz des Hash-Index, der vom solutionSet
-Argument identifiziert wird.
Argumente
solutionSet
– (Erfoderlich) Name des Lösungssatzes, mit dem der Join durchgeführt werden soll. Dies muss ein Hash-Index sein, der in einem vorherigen Schritt mithilfe des OperatorsHashIndexBuild
konstruiert wurde.-
joinType
– (Erforderlich) Der Typ des Join, der ausgeführt werden soll:join
– Ein normales Join, für das eine exakte Übereinstimmung aller geteilten Variablen erforderlich ist.optional
— Einoptional
Join, der die SPARQLOPTIONAL
Operatorsemantik verwendet.minus
— Eineminus
Operation behält unter Verwendung der SPARQLMINUS
Operatorsemantik eine Zuordnung bei, für die kein Join-Partner existiert.existence check
– Prüft, ob ein Join-Partner vorhanden ist, und bindet die VariableexistenceCheckResultVar
an das Ergebnis dieser Prüfung.
constraints
– (Optional) Zusätzliche Join-Einschränkungen, die während des Join in Betracht gezogen werden. Joins, die diese Einschränkungen nicht erfüllen, werden verworfen.existenceCheckResultVar
– (Optional) Wird nur für Joins verwendet, in denenjoinType
gleichexistence check
ist (siehe zuvor das ArgumentjoinType
).
MergeJoin
-Operator
Ein Zusammenführungs-Join über mehrere Lösungen, wie es vom solutionSets
-Argument identifiziert wird.
Argumente
solutionSets
– (Erforderlich) Die Lösungssätze, für die ein Join ausgeführt werden soll.
NamedSubquery
-Operator
Löst eine Bewertung der Unterabfrage aus, die vom subQuery
-Argument identifiziert wird, und spult das Ergebnis in den vom solutionSet
-Argument angegebenen Lösungssatz. Die eingehenden Lösungen für den Operator werden an die Unterabfrage und dann an den nächsten Operator weitergeleitet.
Argumente
subQuery
– (Erforderlich) Der Name der Unterabfrage, die ausgewertet werden soll. Die Unterabfrage wird in der Ausgabe explizit gerendert.solutionSet
– (Erforderlich) Der Name des Lösungssatzes, in dem das Ergebnis der Unterabfrage gespeichert werden soll.
PipelineJoin
-Operator
Erhält die Ausgabe des vorherigen Operators als Eingabe und verbindet sie mit dem Tupel-Muster, das vom pattern
-Argument definiert wird.
Argumente
pattern
— (Erforderlich) Das Muster, das die Form eines Tupels und optional eines Graphen annimmt subject-predicate-object, das der Verknüpfung zugrunde liegt. Wenndistinct
für das Muster angegeben wird, extrahiert der Join nur unterschiedliche Lösungen aus den Projektionsvariablen, die vomprojectionVars
-Argument angegeben werden, anstatt alle passenden Lösungen zu extrahieren.inlineFilters
– (Optional) Eine Reihe von Filtern, die auf die Variablen im Muster angewendet werden sollen. Das Muster wird in Verbindung mit diesen Filtern ausgewertet.-
joinType
– (Erforderlich) Der Typ des Join, der ausgeführt werden soll:join
– Ein normales Join, für das eine exakte Übereinstimmung aller geteilten Variablen erforderlich ist.optional
— Einoptional
Join, der die Operatorsemantik verwendet. SPARQLOPTIONAL
minus
— Eineminus
Operation behält unter Verwendung der SPARQLMINUS
Operatorsemantik eine Zuordnung bei, für die kein Join-Partner existiert.existence check
– Prüft, ob ein Join-Partner vorhanden ist, und bindet die VariableexistenceCheckResultVar
an das Ergebnis dieser Prüfung.
constraints
– (Optional) Zusätzliche Join-Einschränkungen, die während des Join in Betracht gezogen werden. Joins, die diese Einschränkungen nicht erfüllen, werden verworfen.projectionVars
– (Optional) Die Projektionsvariablen. Werden in Verbindung mitdistinct := true
verwendet, um das Extrahieren unterschiedlicher Projektionen aus einem bestimmten Variablensatz zu erzwingen.cutoffLimit
– (Optional) Ein Abschnittslimit für die Anzahl der extrahierten Join-Partner. Obwohl standardmäßig kein Limit vorliegt, können Sie diesen Wert bei Ausführen von Joins auf 1 festlegen, umFILTER (NOT) EXISTS
-Klauseln zu implementieren, sofern es ausreicht zu beweisen oder zu wiederlegen, dass ein Join-Partner vorhanden ist.
PipelineCountJoin
-Operator
Eine Variante von PipelineJoin
. Anstatt einen Join durchzuführen, werden einfach die übereinstimmenden Join-Partner gezählt und die Anzahl wird an die Variable gebunden, die vom countVar
-Argument angegeben wird.
Argumente
countVar
– (Erforderlich) Die Variable, über die das Ergebnis der Zählung, d. h. die Anzahl der Join-Partner, gebunden werden soll.pattern
— (Erforderlich) Das Muster, das die Form eines Tupels und optional eines Graphen annimmt subject-predicate-object, das der Verknüpfung zugrunde liegt. Wenndistinct
für das Muster angegeben wird, extrahiert der Join nur unterschiedliche Lösungen aus den Projektionsvariablen, die vomprojectionVars
-Argument angegeben werden, anstatt alle passenden Lösungen zu extrahieren.inlineFilters
– (Optional) Eine Reihe von Filtern, die auf die Variablen im Muster angewendet werden sollen. Das Muster wird in Verbindung mit diesen Filtern ausgewertet.-
joinType
– (Erforderlich) Der Typ des Join, der ausgeführt werden soll:join
– Ein normales Join, für das eine exakte Übereinstimmung aller geteilten Variablen erforderlich ist.optional
— Einoptional
Join, der die Operatorsemantik verwendet. SPARQLOPTIONAL
minus
— Eineminus
Operation behält unter Verwendung der SPARQLMINUS
Operatorsemantik eine Zuordnung bei, für die kein Join-Partner existiert.existence check
– Prüft, ob ein Join-Partner vorhanden ist, und bindet die VariableexistenceCheckResultVar
an das Ergebnis dieser Prüfung.
constraints
– (Optional) Zusätzliche Join-Einschränkungen, die während des Join in Betracht gezogen werden. Joins, die diese Einschränkungen nicht erfüllen, werden verworfen.projectionVars
– (Optional) Die Projektionsvariablen. Werden in Verbindung mitdistinct := true
verwendet, um das Extrahieren unterschiedlicher Projektionen aus einem bestimmten Variablensatz zu erzwingen.cutoffLimit
– (Optional) Ein Abschnittslimit für die Anzahl der extrahierten Join-Partner. Obwohl standardmäßig kein Limit vorliegt, können Sie diesen Wert bei Ausführen von Joins auf 1 festlegen, umFILTER (NOT) EXISTS
-Klauseln zu implementieren, sofern es ausreicht zu beweisen oder zu wiederlegen, dass ein Join-Partner vorhanden ist.
PipelinedHashIndexJoin
-Operator
Dies ist ein all-in-one Build-Hash-Index und ein Join-Operator. Er nimmt eine Liste von Bindungen, spult sie in einen Hash-Index und verknüpft dann die eingehenden Lösungen anhand des Hash-Indexes.
Argumente
-
sourceType
– (Required) Der Typ der Quelle, aus der die Bindungen für die Speicherung im Hash-Index abgerufen werden:pipeline
– LässtPipelinedHashIndexJoin
die eingehenden Lösungen aus dem Downstream-Operator in der Operator-Pipeline in den Hash-Index spulen.binding set
– LässtPipelinedHashIndexJoin
den vomsourceBindingSet
-Argument angegebenen festen Bindungssatz in den Hash-Index spulen.
sourceSubQuery
– (Optional) Wenn das ArgumentsourceType
den Wertpipeline
hat, gibt dieses Argument die Unterabfrage an, die ausgewertet und in den Hash-Index gespoolt wird.sourceBindingSet
– (Optional) Wenn das ArgumentsourceType
den Wertbinding set
hat, gibt dieses Argument den statischen Bindungssatz an, der in den Hash-Index gespult werden soll.-
joinType
– (Erforfderlich) Der Typ des Join, der ausgeführt werden soll:join
– Ein normales Join, für das eine exakte Übereinstimmung aller geteilten Variablen erforderlich ist.optional
— Einoptional
Join, der die SPARQLOPTIONAL
Operatorsemantik verwendet.minus
— Eineminus
Operation behält unter Verwendung der SPARQLMINUS
Operatorsemantik eine Zuordnung bei, für die kein Join-Partner existiert.existence check
– Prüft, ob ein Join-Partner vorhanden ist, und bindet die VariableexistenceCheckResultVar
an das Ergebnis dieser Prüfung.
existenceCheckResultVar
— (Optional) Wird nur für Verknüpfungen verwendet, bei denenjoinType
gleich istexistence check
(siehe das joinType Argument oben).
Projection
-Operator
Projiziert über eine Teilmenge der Variablen. Die Anzahl der eingehenden Lösungen entspricht der Anzahl der ausgehenden Lösungen, aber die Form der Lösung ist je nach Moduseinstellung unterschiedlich.
Modi
retain
– In Lösungen werden nur die Variablen beibehalten, die vom Argumentvars
angegeben werden.drop
– Alle Variablen, die vom Argumentvars
angegeben werden, werden entfernt.
Argumente
vars
– (Erforderlich) Die Variablen, die je nach Moduseinstellung beibehalten oder entfernt werden sollen.
PropertyPath
-Operator
Aktiviert rekursive Eigenschaftspfade wie +
oder *
. Neptune implementiert einen Festkomma-Iterationsansatz, der auf einer durch das Argument iterationTemplate
angegebenen Vorlage basiert. Bekannte Variablen der linken oder rechten Seite werden in der Vorlage solange für jede Iteration mit festem Punkt gebunden, bis keine neuen Lösungen gefunden werden können.
Argumente
iterationTemplate
– (Erforderlich) Der Name der Vorlage für die Unterabfrage, die für die Implementierung der Iteration mit festem Punkt verwendet wird.leftTerm
– (Erforderlich) Der Begriff (Variable oder Konstante) auf der linken Seite des Eigenschaftspfads.rightTerm
– (Erforderlich) Der Begriff (Variable oder Konstante) auf der rechten Seite des Eigenschaftspfads.lowerBound
– (Erforderlich) Die untere Grenze für die Iteration mit festem Punkt (entweder0
für*
-Abfragen oder1
für+
-Abfragen).
TermResolution
-Operator
Übersetzt interne Zeichenfolgekennungswerte zurück in ihre entsprechenden externen Zeichenfolgen oder übersetzt externe Zeichenfolgen in internen Kennungswerte. Dies ist vom Modus abhängig.
Modi
value2id
— Ordnet Begriffe wie Literale URIs den entsprechenden internen ID-Werten zu (Kodierung zu internen Werten).id2value
— Ordnet interne ID-Werte den entsprechenden Begriffen wie Literalen und URIs (Dekodierung interner Werte) zu.
Argumente
vars
— (Erforderlich) Gibt die Variablen an, deren Zeichenketten oder interne Zeichenketten zugeordnet werden IDs sollen.
Slice
-Operator
Implementiert einen Slice über dem eingehenden Lösungsstream und verwendet dabei die Semantik SPARQL von 'LIMIT
und OFFSET
Klauseln.
Argumente
limit
– (Optional) Eine Einschränkung für die Lösungen, die weitergeleitet werden sollen.offset
– (Optional) Der Versatz, mit dem Lösungen für die Weiterleitung ausgewertet werden.
SolutionInjection
-Operator
Empfängt keine Eingabe. Bringt statische Lösungen in den Abfrageplan ein und nimmt sie in das solutions
-Argument auf.
Anfragepläne beginnen immer mit dieser statischen Injektion. Wenn einzubringende statische Lösungen aus der Abfrage abgeleitet werden können, indem verschiedene Quellen statischer Bindungen (z. B. aus VALUES
- oder BIND
-Klauseln) abgeleitet werden können, bringt der SolutionInjection
-Operator diese abgeleiteten statischen Lösungen ein. Im einfachsten Fall spiegelt dies Bindungen wider, die von einer äußeren VALUES
-Klausel angedeutet werden.
Wenn keine statischen Lösungen aus der Abfrage abgeleitet werden können, bringt SolutionInjection
die leere so genannte universelle Lösung ein, die erweitert und im Abfragebewertungsprozess multipliziert wird.
Argumente
solutions
– (Erforderlich) Die vom Operator eingefügte Lösungsabfolge.
Sort
-Operator
Sortiert den Lösungssatz mithilfe bestimmter Sortierbedingungen.
Argumente
sortOrder
– (Erforderlich) Eine geordnete Liste von Variablen mit jeweils einerASC
-ID (aufsteigenden) oder einerDESC
-ID (absteigend), die zum Sortieren des Lösungssatzes verwendet wird.
VariableAlignment
-Operator
Prüft Lösungen einzeln und führt bei jeder davon eine Ausrichtung über zwei Variablen durch: ein angegebenes sourceVar
-Element und ein angegebenes targetVar
-Element.
Wenn sourceVar
und targetVar
in einer Lösung denselben Wert haben, gilt die Variablen als ausgerichtet und die Lösung wird weitergeleitet. Dabei wird das redundante sourceVar
-Element heraus projiziert.
Wenn die Variablen an unterschiedliche Werte gebunden werden, wird die Lösung vollständig herausgefiltert.
Argumente
sourceVar
– (Erforderlich) Die Quellvariable, die mit der Zielvariablen verglichen werden soll. Wenn die Ausrichtung in einer Lösung erfolgreich ist, die beiden Variablen also den gleichen Wert haben, wird die Quellvariable heraus projiziert.targetVar
– (Erforderlich) Die Zielvariable, mit der die Quellvariable verglichen werden soll. Wird auch beibehalten, wenn die Ausrichtung erfolgreich ist.