Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Opérateurs Neptune SPARQL explain
Les sections suivantes décrivent les opérateurs et les paramètres de la SPARQL explain
fonctionnalité actuellement disponible dans Amazon Neptune.
Important
La SPARQL explain
fonctionnalité est encore en cours d'amélioration. Les opérateurs et paramètres documentés ici sont susceptibles de changer dans de futures versions.
Rubriques
- Opérateur Aggregation
- Opérateur ConditionalRouting
- Opérateur Copy
- Opérateur DFENode
- Opérateur Distinct
- Opérateur Federation
- Opérateur Filter
- Opérateur HashIndexBuild
- Opérateur HashIndexJoin
- Opérateur MergeJoin
- Opérateur NamedSubquery
- Opérateur PipelineJoin
- Opérateur PipelineCountJoin
- Opérateur PipelinedHashIndexJoin
- Opérateur Projection
- Opérateur PropertyPath
- Opérateur TermResolution
- Opérateur Slice
- Opérateur SolutionInjection
- Opérateur Sort
- Opérateur VariableAlignment
Opérateur Aggregation
Effectue une ou plusieurs agrégations, en implémentant la sémantique des opérateurs d'SPARQLagrégation tels quecount
,max
,min
,,sum
, etc.
Aggregation
est fourni avec un regroupement facultatif à l'aide de clauses groupBy
et de contraintes having
facultatives.
Arguments
groupBy
: (facultatif) fournit une clausegroupBy
qui spécifie la séquence d'expressions selon laquelle les solutions entrantes sont regroupées.aggregates
: (obligatoire) spécifie une liste ordonnée d'expressions d'agrégation.having
— (Facultatif) Ajoute des contraintes pour filtrer les groupes, comme l'implique lahaving
clause de la SPARQL requête.
Opérateur ConditionalRouting
Achemine des solutions entrants en fonction d'une condition. Les solutions qui remplissent les conditions sont acheminées vers l'ID d'opérateur référencé par Out #1
, tandis que les solutions qui ne les remplissent pas sont acheminées vers l'opérateur référencé par Out #2
.
Arguments
condition
: (obligatoire) condition de routage.
Opérateur Copy
Délègue le flux de solution comme spécifié par le mode indiqué.
Modes
forward
: transmet les solutions à l'opérateur en aval identifié parOut #1
.duplicate
: duplique les solutions et les transmet à chacun des deux opérateurs identifiées parOut #1
etOut #2
.
Copy
ne comporte aucun argument.
Opérateur DFENode
Cet opérateur est une abstraction du plan exécuté par le moteur de requête DFE alternatif. Le DFE plan détaillé est décrit dans les arguments de cet opérateur. L'argument est actuellement surchargé pour contenir les statistiques d'exécution détaillées du DFE plan. Il contient le temps passé dans les différentes étapes de l'exécution des requêtes parDFE.
L'arbre syntaxique abstrait optimisé pour la logique (AST) du plan de DFE requête est imprimé avec des informations sur les types d'opérateurs pris en compte lors de la planification et les meilleurs et pires coûts associés à l'exécution des opérateurs. ASTIl comprend actuellement les types de nœuds suivants :
DFEJoinGroupNode
: représente une jointure d'un ou de plusieurs élémentsDFEPatternNodes
.DFEPatternNode
: encapsule un modèle sous-jacent à l'aide duquel les tuples correspondants sont projetés hors de la base de données sous-jacente.
La sous-section contient Statistics & Operator histogram
des détails sur le temps d'exécution du DataflowOp
plan et la répartition du CPU temps utilisé par chaque opérateur. En dessous se trouve un tableau qui affiche les statistiques d'exécution détaillées du plan exécuté parDFE.
Note
Comme il DFE s'agit d'une fonctionnalité expérimentale publiée en mode laboratoire, le format exact de sa explain
sortie peut changer.
Opérateur Distinct
Calcule la projection distincte sur un sous-ensemble des variables, en éliminant les doublons. Par conséquent, le nombre de solutions en entrée est supérieur ou égal au nombre de solutions en sortie.
Arguments
vars
: (obligatoire) variables auxquelles appliquer la projectionDistinct
.
Opérateur Federation
Transmet une requête spécifiée à un point de SPARQL terminaison distant spécifié.
Arguments
endpoint
— (Obligatoire) Le point de terminaison indiqué URL dans la SPARQLSERVICE
déclaration. Il peut s'agir d'une chaîne constante, ou, si le point de terminaison de la requête est déterminé en fonction d'une variable au sein de la même requête, il peut s'agir du nom de la variable.query
: (obligatoire) chaîne de requête reconstruite à envoyer au point de terminaison distant. Le moteur ajoute des préfixes par défaut à cette requête, même lorsque le client n'en spécifie aucun.silent
: (obligatoire) valeur booléenne qui indique si le mot-cléSILENT
apparaît après le mot-clé.SILENT
indique au moteur de ne pas faire échouer l'ensemble de la requête, même si la partieSERVICE
distante échoue.
Opérateur Filter
Filtre les solutions entrantes. Seules les solutions qui remplissent la condition de filtre sont transmises à l'opérateur en amont. Toutes les autres sont supprimées.
Arguments
condition
: (obligatoire) condition de filtre.
Opérateur HashIndexBuild
Prend une liste de liaisons et les place dans un index de hachage dont le nom est défini par l'argument solutionSet
. En général, les opérateurs suivants effectuent des jointures en fonction de cette solution, en y faisant référence par ce nom.
Arguments
solutionSet
: (obligatoire) nom de l'ensemble de solutions de l'index de hachage.-
sourceType
: (obligatoire) type de la source à partir de laquelle les liaisons à stocker dans l'index de hachage sont obtenues :pipeline
: place les solutions entrantes de l'opérateur en aval dans le pipeline des opérateurs dans l'index de hachage.binding set
: place l'ensemble de liaisons fixes spécifié par l'argumentsourceBindingSet
dans l'index de hachage.
sourceBindingSet
: (facultatif) si la valeur de l'argumentsourceType
estbinding set
, cet argument spécifie l'ensemble de liaisons statiques à placer dans l'index de hachage.
Opérateur HashIndexJoin
Joint les solutions entrantes par rapport à l'ensemble de solutions de l'index de hachage, identifié par l'argument solutionSet
.
Arguments
solutionSet
: (obligatoire) nom de l'ensemble de solutions sur lequel effectuer la jointure. Il doit s'agir d'un index de hachage qui a été créé dans une étape précédente à l'aide de l'opérateurHashIndexBuild
.-
joinType
: (obligatoire) type de jointure à effectuer :join
: jointure normale, nécessitant une correspondance exacte entre toutes les variables partagées.optional
— Uneoptional
jointure qui utilise la sémantique de SPARQLOPTIONAL
l'opérateur.minus
— Uneminus
opération conserve un mappage pour lequel aucun partenaire de jointure n'existe, en utilisant la sémantique de SPARQLMINUS
l'opérateur.existence check
: vérifie s'il existe ou non un partenaire de jointure et lie la variableexistenceCheckResultVar
au résultat de cette vérification.
constraints
: (facultatif) des contraintes de jointure supplémentaires sont prises en compte lors de la jointure. Les jointures qui ne remplissent pas ces contraintes sont rejetées.existenceCheckResultVar
: (facultatif) utilisé uniquement pour les jointures oùjoinType
est égal àexistence check
(voir l'argumentjoinType
ci-dessus).
Opérateur MergeJoin
Jointure par fusion sur plusieurs ensembles de solutions, identifiés par l'argument solutionSets
.
Arguments
solutionSets
: (obligatoire) ensembles de solutions à joindre.
Opérateur NamedSubquery
Déclenche l'évaluation de la sous-requête identifiée par l'argument subQuery
et place le résultat dans l'ensemble de solutions spécifié par l'argument solutionSet
. Les solutions entrantes pour l'opérateur sont transmises à la sous-requête, puis à l'opérateur suivant.
Arguments
subQuery
: (obligatoire) nom de la sous-requête à évaluer. La sous-requête est affichée explicitement dans la sortie.solutionSet
: (obligatoire) nom de l'ensemble de solutions dans lequel vous souhaitez stocker le résultat de la sous-requête.
Opérateur PipelineJoin
Reçoit en tant qu'entrée la sortie de l'opérateur précédent et la joint en fonction du modèle de tuple défini par l'argument pattern
.
Arguments
pattern
— (Obligatoire) Le modèle, qui prend la forme d'un tuple subject-predicate-object, et éventuellement d'un tuple -graph, qui sous-tend la jointure. Sidistinct
est spécifié pour le modèle, la jointure extrait uniquement les solutions distinctes des variables de projection spécifiées par l'argumentprojectionVars
, et non toutes les solutions qui correspondent.inlineFilters
: (facultatif) ensemble de filtres à appliquer aux variables dans le modèle. Le modèle est évalué conjointement avec ces filtres.-
joinType
: (obligatoire) type de jointure à effectuer :join
: jointure normale, nécessitant une correspondance exacte entre toutes les variables partagées.optional
— Uneoptional
jointure qui utilise la sémantique de SPARQLOPTIONAL
l'opérateur.minus
— Uneminus
opération conserve un mappage pour lequel aucun partenaire de jointure n'existe, en utilisant la sémantique de SPARQLMINUS
l'opérateur.existence check
: vérifie s'il existe ou non un partenaire de jointure et lie la variableexistenceCheckResultVar
au résultat de cette vérification.
constraints
: (facultatif) des contraintes de jointure supplémentaires sont prises en compte lors de la jointure. Les jointures qui ne remplissent pas ces contraintes sont rejetées.projectionVars
: (facultatif) variables de la projection. Utilisé en combiné avecdistinct := true
pour appliquer l'extraction de projections distinctes sur un ensemble de variables spécifié.cutoffLimit
: (facultatif) limite de coupure pour le nombre de partenaires de jointure extraits. Même s'il n'existe pas de limite par défaut, vous pouvez définir cet argument sur 1 lorsque vous effectuez des jointures pour implémenter des clausesFILTER (NOT) EXISTS
, où il suffit de prouver ou de réfuter qu'il existe une jointure partenaire.
Opérateur PipelineCountJoin
Variante de PipelineJoin
. Au lieu d'effectuer une jointure, compte uniquement les partenaires de jointure correspondants et lie le comptage à la variable spécifiée par l'argument countVar
.
Arguments
countVar
: (obligatoire) variable à laquelle le résultat du décompte, à savoir le nombre de partenaires de jointure, doit être limitée.pattern
— (Obligatoire) Le modèle, qui prend la forme d'un tuple subject-predicate-object, et éventuellement d'un tuple -graph, qui sous-tend la jointure. Sidistinct
est spécifié pour le modèle, la jointure extrait uniquement les solutions distinctes des variables de projection spécifiées par l'argumentprojectionVars
, et non toutes les solutions qui correspondent.inlineFilters
: (facultatif) ensemble de filtres à appliquer aux variables dans le modèle. Le modèle est évalué conjointement avec ces filtres.-
joinType
: (obligatoire) type de jointure à effectuer :join
: jointure normale, nécessitant une correspondance exacte entre toutes les variables partagées.optional
— Uneoptional
jointure qui utilise la sémantique de SPARQLOPTIONAL
l'opérateur.minus
— Uneminus
opération conserve un mappage pour lequel aucun partenaire de jointure n'existe, en utilisant la sémantique de SPARQLMINUS
l'opérateur.existence check
: vérifie s'il existe ou non un partenaire de jointure et lie la variableexistenceCheckResultVar
au résultat de cette vérification.
constraints
: (facultatif) des contraintes de jointure supplémentaires sont prises en compte lors de la jointure. Les jointures qui ne remplissent pas ces contraintes sont rejetées.projectionVars
: (facultatif) variables de la projection. Utilisé en combiné avecdistinct := true
pour appliquer l'extraction de projections distinctes sur un ensemble de variables spécifié.cutoffLimit
: (facultatif) limite de coupure pour le nombre de partenaires de jointure extraits. Même s'il n'existe pas de limite par défaut, vous pouvez définir cet argument sur 1 lorsque vous effectuez des jointures pour implémenter des clausesFILTER (NOT) EXISTS
, où il suffit de prouver ou de réfuter qu'il existe une jointure partenaire.
Opérateur PipelinedHashIndexJoin
Il s'agit d'un index de hachage de all-in-one construction et d'un opérateur de jointure. Il utilise une liste de liaisons, les regroupe dans un index de hachage, puis joint les solutions entrantes à l'index de hachage.
Arguments
-
sourceType
: (obligatoire) type de la source à partir de laquelle les liaisons à stocker dans l'index de hachage sont obtenues :pipeline
: incitePipelinedHashIndexJoin
à placer les solutions entrantes de l'opérateur en aval dans le pipeline des opérateurs dans l'index de hachage.binding set
: incitePipelinedHashIndexJoin
à place l'ensemble de liaisons fixes spécifié par l'argumentsourceBindingSet
dans l'index de hachage.
sourceSubQuery
: (facultatif) si la valeur de l'argumentsourceType
estpipeline
, cet argument indique la sous-requête qui est évaluée et insérée dans l'index de hachage.sourceBindingSet
: (facultatif) si la valeur de l'argumentsourceType
estbinding set
, cet argument spécifie l'ensemble de liaisons statiques à placer dans l'index de hachage.-
joinType
: (obligatoire) type de jointure à effectuer :join
: jointure normale, nécessitant une correspondance exacte entre toutes les variables partagées.optional
— Uneoptional
jointure qui utilise la sémantique de SPARQLOPTIONAL
l'opérateur.minus
— Uneminus
opération conserve un mappage pour lequel aucun partenaire de jointure n'existe, en utilisant la sémantique de SPARQLMINUS
l'opérateur.existence check
: vérifie s'il existe ou non un partenaire de jointure et lie la variableexistenceCheckResultVar
au résultat de cette vérification.
existenceCheckResultVar
— (Facultatif) Utilisé uniquement pour les jointuresjoinType
égalesexistence check
(voir l' joinType argument ci-dessus).
Opérateur Projection
Effectue une projection sur un sous-ensemble des variables. Le nombre de solutions en entrée est égal au nombre de solutions en sortie, mais la forme de la solution diffère selon le paramètre de mode.
Modes
retain
: ne conserve dans les solutions que les variables qui sont spécifiées par l'argumentvars
.drop
: abandonne toutes les variables qui sont spécifiées par l'argumentvars
.
Arguments
vars
: (obligatoire) variables à conserver ou à abandonner, en fonction du paramètre de mode.
Opérateur PropertyPath
Active les chemins de propriétés récursifs tels que +
ou *
. Neptune met en œuvre une approche d'itération à point fixe basée sur un modèle spécifié par l'argument iterationTemplate
. Les variables de gauche ou de droite connues sont liées dans le modèle pour chaque itération de type point fixe, jusqu'à ce qu'aucune autre nouvelle solution ne puisse être trouvée.
Arguments
iterationTemplate
: (obligatoire) nom du modèle de sous-requête utilisé pour implémenter l'itération de type point fixe.leftTerm
: (obligatoire) terme (variable ou constante) à gauche du chemin de propriété.rightTerm
: (obligatoire) terme (variable ou constante) à droite du chemin de propriété.lowerBound
: (obligatoire) limite inférieure pour une itération de type point fixe (0
pour les requêtes*
ou1
pour les requêtes+
).
Opérateur TermResolution
Reconvertit des valeurs d'identifiant de chaîne interne en leurs chaînes externes correspondantes, ou convertit des chaînes externes en valeurs d'identifiant de chaîne interne, en fonction du mode.
Modes
value2id
— Associe des termes tels que les littéraux URIs aux valeurs d'identification internes correspondantes (encodage en valeurs internes).id2value
— Associe les valeurs d'identification internes aux termes correspondants tels que les littéraux et URIs (décodage des valeurs internes).
Arguments
vars
— (Obligatoire) Spécifie les variables dont les chaînes ou chaînes internes IDs doivent être mappées.
Opérateur Slice
Implémente une tranche sur le flux de solutions entrant, en utilisant la sémantique des « LIMIT
et OFFSET
des SPARQL clauses ».
Arguments
limit
: (facultatif) limite applicable aux solutions à transmettre.offset
: (facultatif) décalage par rapport auquel les solutions sont évaluées pour la transmission.
Opérateur SolutionInjection
Ne reçoit aucune entrée. Injecte statiquement des solutions dans le plan de requête et les enregistre dans l'argument solutions
.
Les plans de requête commencent toujours par cette injection statique. Si des solutions statiques à injecter peuvent être dérivées de la requête proprement dite en combinant différentes sources de liaisons statiques (par exemple, à partir de clauses VALUES
ou BIND
), l'opérateur SolutionInjection
injecte ces solutions statiques dérivées. Dans le cas le plus simple, elles reflètent des liaisons qui sont impliquées par une clause VALUES
externe.
Si aucune solution statique ne peut être dérivée à partir de la requête, SolutionInjection
injecte la solution soit-disant universelle vide qui est étendue et multipliée tout au long du processus d'évaluation de requête.
Arguments
solutions
: (obligatoire) séquence de solutions injectées par l'opérateur.
Opérateur Sort
Trie l'ensemble de solutions à l'aide des conditions de tri spécifiées.
Arguments
sortOrder
: (obligatoire) liste ordonnée de variables, chacune contenant un élémentASC
(croissant) ouDESC
(décroissant), utilisées de manière séquentielle pour trier l'ensemble de solutions.
Opérateur VariableAlignment
Inspecte les solutions une par une, en alignant chacune d'entre elles sur deux variables : une variable sourceVar
spécifiée et une variable targetVar
spécifiée.
Si sourceVar
et targetVar
dans une solution ont la même valeur, les variables sont considérées comme étant alignées et la solution est transmise avec les variables sourceVar
redondantes sont projetées.
Si les variables sont liées à des valeurs différentes, la solution est filtrée entièrement.
Arguments
sourceVar
: (obligatoire) variable source à comparer à la variable cible. Si l'alignement réussit dans une solution, ce qui signifie que les deux variables ont la même valeur, la variable source est projetée.targetVar
: (obligatoire) variable cible à laquelle la variable source est comparée. Elle est conservée même lorsque l'alignement réussit.