Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Le seguenti sezioni descrivono gli operatori e i parametri per la funzionalità SPARQL explain
attualmente disponibile in Amazon Neptune.
Importante
La funzione SPARQL explain
è ancora in fase di definizione. Gli operatori e i parametri documentati qui potrebbero cambiare nelle prossime versioni.
Argomenti
Operatore Aggregation
Esegue una o più aggregazioni, implementando la semantica di operatori di aggregazione SPARQL, come count
, max
, min
, sum
e così via.
Aggregation
viene fornito con il raggruppamento opzionale utilizzando le clausole groupBy
e i vincoli opzionali having
.
Argomenti
groupBy
: (facoltativo) fornisce una clausolagroupBy
che specifica la sequenza di espressioni in base a cui le soluzioni in entrata sono raggruppate.aggregates
: (obbligatorio) specifica un elenco ordinato di espressioni di aggregazione.having
: (facoltativo) aggiunge vincoli per filtrare gruppi, come implicito nella clausolahaving
della query SPARQL.
Operatore ConditionalRouting
Instrada le soluzioni in entrata in base a una determinata condizione. Le soluzioni che soddisfano la condizione vengono instradate all'ID operatore a cui fa riferimento Out #1
, mentre le soluzioni che non la soddisfano vengono instradate all'operatore a cui fa riferimento Out #2
.
Argomenti
condition
: (obbligatorio) la condizione di instradamento.
Operatore Copy
Delega il flusso di soluzione come specificato dalla modalità indicata.
Modalità
forward
: inoltra le soluzioni all'operatore downstream identificato daOut #1
.duplicate
: duplica le soluzioni e le inoltra a ciascuno dei due operatori identificati daOut #1
eOut #2
.
Copy
non ha argomenti.
Operatore DFENode
Questo operatore è un'astrazione del piano eseguito dal motore di query alternativo DFE. Il piano DFE dettagliato è illustrato negli argomenti di questo operatore. L'argomento è attualmente sovraccarico per contenere le statistiche dettagliate di runtime del piano DFE. Contiene il tempo impiegato nei vari passaggi di esecuzione delle query da parte del motore DFE.
L'albero sintattico astratto (AST) logico ottimizzato per il piano di query DFE viene stampato con informazioni sui tipi di operatori presi in considerazione durante la pianificazione e sui costi associati nel caso peggiore e nel caso migliore per l'esecuzione degli operatori. Al momento, l'AST è composto dai seguenti tipi di nodi:
DFEJoinGroupNode
: rappresenta un join di uno o piùDFEPatternNodes
.DFEPatternNode
: incapsula un modello sottostante con cui le tuple corrispondenti vengono proiettate fuori dal database sottostante.
La sottosezione Statistics & Operator histogram
contiene dettagli sul tempo di esecuzione del piano DataflowOp
e sulla ripartizione del tempo di CPU utilizzato da ciascun operatore. Di seguito è riportata una tabella che riporta le statistiche dettagliate di runtime del piano eseguito dal motore DFE.
Nota
Poiché il motore DFE è una funzionalità sperimentale rilasciata in modalità di laboratorio, il formato esatto dell'output di explain
potrebbe cambiare.
Operatore Distinct
Calcola la proiezione Distinct su un sottoinsieme di variabili, eliminando i duplicati. Di conseguenza, il numero di soluzioni in entrata è maggiore o uguale al numero di soluzioni in uscita.
Argomenti
vars
: (obbligatorio) variabili a cui si applica la proiezioneDistinct
.
Operatore Federation
Passa una determinata query a un endpoint SPARQL remoto specifico.
Argomenti
endpoint
: (obbligatorio) URL dell'endpoint nella dichiarazione SPARQLSERVICE
. Può essere una stringa costante oppure, se l'endpoint della query è determinato in base a una variabile all'interno della stessa query, il nome della variabile.query
: (obbligatorio) stringa di query ricostruita da inviare all'endpoint remoto. Il motore aggiunge prefissi predefiniti a questa query anche quando non vengono specificati dal client.silent
: (obbligatorio) valore booleano che indica se la parola chiaveSILENT
è visualizzata dopo la parola chiave.SILENT
indica al motore di non considerare tutta la query non riuscita anche se la parteSERVICE
remota non riesce.
Operatore Filter
Filtra le soluzioni in entrata. Solo le soluzioni che soddisfano la condizione di filtro vengono inoltrate all'operatore upstream, mentre le altre vengono rilasciate.
Argomenti
condition
: (obbligatorio) condizione di filtro.
Operatore HashIndexBuild
Prende un elenco di associazioni e le elabora in un indice hash il cui nome viene definito dall'argomento solutionSet
. Di solito, gli operatori successivi eseguono join in base a questo set di soluzioni, facendovi riferimento con quel nome.
Argomenti
solutionSet
: (obbligatorio) nome del set di soluzioni dell'indice hash.-
sourceType
: (obbligatorio) tipo di origine da cui vengono ottenute le associazioni da archiviare nell'indice hash.pipeline
: elabora le soluzioni in entrata dall'operatore downstream nella pipeline dell'operatore nell'indice hash.binding set
: elabora il set di associazioni fisse specificate dall'argomentosourceBindingSet
nell'indice hash.
sourceBindingSet
: (facoltativo) se il valore dell'argomentosourceType
èbinding set
, questo argomento specifica il set di associazioni statico da elaborare nell'indice hash.
Operatore HashIndexJoin
Esegue il join delle soluzioni in entrata rispetto al set di soluzioni dell'indice hash identificato dall'argomento solutionSet
.
Argomenti
solutionSet
: (obbligatorio) nome del set di soluzioni rispetto al quale eseguire il join. Questo deve essere un indice hash che è stato costruito in una fase precedente utilizzando l'operatoreHashIndexBuild
.-
joinType
: (obbligatorio) tipo di join da eseguire.join
: join normale che richiede una corrispondenza esatta tra tutte le variabili condivise.optional
: joinoptional
che usa la semantica dell'operatore SPARQLOPTIONAL
.minus
: un'operazioneminus
conserva una mappatura per la quale non esiste alcun partner di join, utilizzando la semantica dell'operatore SPARQLMINUS
.existence check
: verifica se c'è un partner di join o meno e associa la variabileexistenceCheckResultVar
al risultato di questo controllo.
constraints
: (facoltativo) vincoli di join aggiuntivi considerati durante il join. I join che non soddisfano questi vincoli vengono eliminati.existenceCheckResultVar
: (facoltativo) usato solo per i join in cuijoinType
è uguale aexistence check
(vedi l'argomentojoinType
precedente).
Operatore MergeJoin
Un merge join su più set di soluzioni, identificati dall'argomento solutionSets
.
Argomenti
solutionSets
: (obbligatorio) set di soluzioni su cui eseguire il join.
Operatore NamedSubquery
Attiva la valutazione della sottoquery identificata dall'argomento subQuery
ed elabora il risultato nel set di soluzioni specificato dall'argomento solutionSet
. Le soluzioni in entrata per l'operatore sono inoltrate alla sottoquery e quindi all'operatore successivo.
Argomenti
subQuery
: (obbligatorio) nome della sottoquery da valutare. La sottoquery viene resa in modo esplicito nell'output.solutionSet
: (obbligatorio) nome del set di soluzioni in cui archiviare il risultato della sottoquery.
Operatore PipelineJoin
Riceve come input l'output dell'operatore precedente ed esegue il join in base al modello di tupla definito dall'argomento pattern
.
Argomenti
pattern
— (Obbligatorio) Il pattern, che assume la forma di una tupla, e facoltativamente a grafo subject-predicate-object, che è alla base dell'unione. Sedistinct
viene specificato per il modello, il join estrae solo le soluzioni distinte dalle variabili di proiezione specificate dall'argomentoprojectionVars
, piuttosto che tutte le soluzioni corrispondenti.inlineFilters
: (facoltativo) set di filtri da applicare alle variabili nel modello. Il modello viene valutato in combinazione con questi filtri.-
joinType
: (obbligatorio) tipo di join da eseguire.join
: join normale che richiede una corrispondenza esatta tra tutte le variabili condivise.optional
: joinoptional
che usa la semantica dell'operatore SPARQLOPTIONAL
.minus
: un'operazioneminus
conserva una mappatura per la quale non esiste alcun partner di join, utilizzando la semantica dell'operatore SPARQLMINUS
.existence check
: verifica se c'è un partner di join o meno e associa la variabileexistenceCheckResultVar
al risultato di questo controllo.
constraints
: (facoltativo) vincoli di join aggiuntivi considerati durante il join. I join che non soddisfano questi vincoli vengono eliminati.projectionVars
: (facoltativo) variabili della proiezione. Utilizzato in combinazione condistinct := true
per applicare l'estrazione delle proiezioni distinte per un determinato set di variabili.cutoffLimit
: (facoltativo) limite massimo per il numero di partner di join estratti. Anche se non vi è alcun limite predefinito, è possibile impostare questo a 1 quando si eseguono join per implementare clausoleFILTER (NOT) EXISTS
, dove è sufficiente provare o smentire che c'è un partner di join.
Operatore PipelineCountJoin
Variante di PipelineJoin
. Invece di eseguire il join, conteggia solo i partner di join corrispondenti e associa il conteggio alla variabile specificata dall'argomento countVar
.
Argomenti
countVar
: (obbligatorio) variabile a cui il risultato del conteggio, cioè il numero di partner di join, deve essere associato.pattern
— (Obbligatorio) Il pattern, che assume la forma di una tupla subject-predicate-object, e facoltativamente a grafo, che sta alla base dell'unione. Sedistinct
viene specificato per il modello, il join estrae solo le soluzioni distinte dalle variabili di proiezione specificate dall'argomentoprojectionVars
, piuttosto che tutte le soluzioni corrispondenti.inlineFilters
: (facoltativo) set di filtri da applicare alle variabili nel modello. Il modello viene valutato in combinazione con questi filtri.-
joinType
: (obbligatorio) tipo di join da eseguire.join
: join normale che richiede una corrispondenza esatta tra tutte le variabili condivise.optional
: joinoptional
che usa la semantica dell'operatore SPARQLOPTIONAL
.minus
: un'operazioneminus
conserva una mappatura per la quale non esiste alcun partner di join, utilizzando la semantica dell'operatore SPARQLMINUS
.existence check
: verifica se c'è un partner di join o meno e associa la variabileexistenceCheckResultVar
al risultato di questo controllo.
constraints
: (facoltativo) vincoli di join aggiuntivi considerati durante il join. I join che non soddisfano questi vincoli vengono eliminati.projectionVars
: (facoltativo) variabili della proiezione. Utilizzato in combinazione condistinct := true
per applicare l'estrazione delle proiezioni distinte per un determinato set di variabili.cutoffLimit
: (facoltativo) limite massimo per il numero di partner di join estratti. Anche se non vi è alcun limite predefinito, è possibile impostare questo a 1 quando si eseguono join per implementare clausoleFILTER (NOT) EXISTS
, dove è sufficiente provare o smentire che c'è un partner di join.
Operatore PipelinedHashIndexJoin
Si tratta di un operatore di all-in-one build hash index e join. Accetta un elenco di associazioni, le elabora in un indice hash e quindi esegue il join delle soluzioni in entrata rispetto all'indice hash.
Argomenti
-
sourceType
: (obbligatorio) tipo di origine da cui vengono ottenute le associazioni da archiviare nell'indice hash, uno tra:pipeline
: fa sì chePipelinedHashIndexJoin
elabori le soluzioni in entrata dall'operatore downstream nella pipeline dell'operatore nell'indice hash.binding set
: fa sì chePipelinedHashIndexJoin
elabori il set di associazioni fisse specificate dall'argomentosourceBindingSet
nell'indice hash.
sourceSubQuery
: (facoltativo) se il valore dell'argomentosourceType
èpipeline
, questo argomento specifica la sottoquery che viene valutata ed elaborata nell'indice hash.sourceBindingSet
: (facoltativo) se il valore dell'argomentosourceType
èbinding set
, questo argomento specifica il set di associazioni statico da elaborare nell'indice hash.-
joinType
: (obbligatorio) tipo di join da eseguire:join
: join normale che richiede una corrispondenza esatta tra tutte le variabili condivise.optional
: joinoptional
che usa la semantica dell'operatore SPARQLOPTIONAL
.minus
: un'operazioneminus
conserva una mappatura per la quale non esiste alcun partner di join, utilizzando la semantica dell'operatore SPARQLMINUS
.existence check
: verifica se c'è un partner di join o meno e associa la variabileexistenceCheckResultVar
al risultato di questo controllo.
existenceCheckResultVar
: (facoltativo) usato solo per i join in cuijoinType
è uguale aexistence check
(vedi l'argomento joinType precedente).
Operatore Projection
Proietta su un sottoinsieme di variabili. Il numero di soluzioni in entrata è uguale al numero di soluzioni in uscita, ma la forma della soluzione varia in base all'impostazione della modalità.
Modalità
retain
: conserva nelle soluzioni solo le variabili specificate dall'argomentovars
.drop
: elimina tutte le variabili specificate dall'argomentovars
.
Argomenti
vars
: (obbligatorio) variabili da conservare o eliminare, a seconda dell'impostazione della modalità.
Operatore PropertyPath
Abilita percorsi di proprietà ricorsivi come +
o *
. Neptune implementa un approccio di iterazione a virgola fissa in base a un modello specificato dall'argomento iterationTemplate
. Le variabili lato destro o lato sinistro note sono vincolate nel modello per ogni iterazione a virgola fissa, fino a quando non vengono più trovate nuove soluzioni.
Argomenti
iterationTemplate
: (obbligatorio) nome del modello di sottoquery utilizzato per implementare l'iterazione a virgola fissa.leftTerm
: (obbligatorio) termine (variabile o costante) sul lato sinistro del percorso di proprietà.rightTerm
: (obbligatorio) termine (variabile o costante) sul lato destro del percorso di proprietà.lowerBound
: (obbligatorio) limite inferiore per l'iterazione a virgola fissa (0
per le query*
oppure1
per le query+
).
Operatore TermResolution
Traduce i valori dell'identificatore della stringa interna nelle stringhe esterni corrispondenti o traduce le stringhe esterne in valori dell'identificatore della stringa interna, in base alla modalità.
Modalità
value2id
— Associa termini come valori letterali e URIs ai corrispondenti valori ID interni (codifica in valori interni).id2value
— Associa i valori ID interni ai termini corrispondenti, ad esempio letterali e URIs (decodifica dei valori interni).
Argomenti
vars
— (Obbligatorio) Specificate le variabili le cui stringhe o stringhe interne devono essere mappate. IDs
Operatore Slice
Implementa una sezione nel flusso di soluzioni in entrata, utilizzando la semantica delle clausole SPARQL LIMIT
e OFFSET
.
Argomenti
limit
: (facoltativo) limite per le soluzioni da inoltrare.offset
: (facoltativo) offset a cui sono valutate le soluzioni per l'inoltro.
Operatore SolutionInjection
Non riceve alcun input. Introduce staticamente le soluzioni nel piano di query e le registra nell'argomento solutions
.
I piani di query iniziano sempre con questa introduzione statica. Se le soluzioni statiche da introdurre possono essere ricavate dalla query stessa combinando varie origini di associazioni statiche (ad esempio da clausole VALUES
o BIND
), l'operatore SolutionInjection
introduce queste soluzioni statiche derivate. Nel caso più semplice, queste riflettono associazioni che sono implicite in una clausola VALUES
esterna.
Se nessuna delle soluzioni statiche può essere ricavata dalla query, SolutionInjection
introduce la soluzione vuota cosiddetta universale, che viene ampliata e moltiplicata durante tutto il processo di valutazione di query.
Argomenti
solutions
: (obbligatorio) sequenza di soluzioni introdotte dall'operatore.
Operatore Sort
Ordina il set di soluzioni utilizzando le condizioni di ordinamento specificate.
Argomenti
sortOrder
: (obbligatorio) elenco ordinato di variabili, ognuna contenente un identificatoreASC
(crescente) oDESC
(decrescente), utilizzate sequenzialmente per ordinare il set di soluzioni.
Operatore VariableAlignment
Analizza le soluzioni una ad una, eseguendo l'allineamento su ognuna in base a due variabili: un sourceVar
specificato e un targetVar
specificato.
Se sourceVar
e targetVar
in una soluzione hanno lo stesso valore, le variabili sono considerate allineate e la soluzione viene inoltrata, con il sourceVar
ridondante proiettato in uscita.
Se le variabili sono associate a diversi valori, la soluzione viene completamente filtrata.
Argomenti
sourceVar
: (obbligatorio) variabile di origine da confrontare con la variabile di destinazione. Se l'allineamento va a buon fine in una soluzione, il che significa che le due variabili hanno lo stesso valore, la variabile di origine viene proiettata in uscita.targetVar
: (obbligatorio) variabile di destinazione con la quale viene confrontata la variabile di origine. Viene conservata anche quando l'allineamento va a buon fine.