Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Operadores de Neptune SPARQL explain
En las siguientes secciones se describen los operadores y los parámetros de la SPARQL explain
función actualmente disponible en Amazon Neptune.
importante
La SPARQL explain
función aún se está perfeccionando. Los operadores y los parámetros que se documentan aquí pueden cambiar en versiones futuras.
Temas
- operador Aggregation
- operador ConditionalRouting
- operador Copy
- operador DFENode
- operador Distinct
- operador Federation
- operador Filter
- operador HashIndexBuild
- operador HashIndexJoin
- operador MergeJoin
- operador NamedSubquery
- operador PipelineJoin
- operador PipelineCountJoin
- operador PipelinedHashIndexJoin
- operador Projection
- operador PropertyPath
- operador TermResolution
- operador Slice
- operador SolutionInjection
- operador Sort
- operador VariableAlignment
operador Aggregation
Realiza una o más agregaciones, implementando la semántica de los operadores de SPARQL agregación como count
max
,min
,sum
,, etc.
Aggregation
incluye una agrupación opcional que utiliza cláusulas groupBy
y restricciones having
opcionales.
Argumentos
groupBy
: (opcional) proporciona una cláusulagroupBy
que especifica la secuencia de expresiones según la cual se agrupan las soluciones entrantes.aggregates
: (obligatorio) especifica una lista ordenada de expresiones de agregación.having
— (Opcional) Añade restricciones para filtrar los grupos, tal como se indica en lahaving
cláusula de la SPARQL consulta.
operador ConditionalRouting
Direcciona las soluciones entrantes en función de una condición determinada. Las soluciones que cumplen la condición se direccionan al ID de operador al que hace referencia Out #1
, mientras que las soluciones que no la cumplen se direccionan al operador al que hace referencia Out #2
.
Argumentos
condition
: (obligatorio) la condición de enrutamiento.
operador Copy
Delega el flujo de la solución tal y como indica el modo especificado.
Modos
forward
: reenvía las soluciones al operador posterior identificado porOut #1
.duplicate
: duplica las soluciones y las reenvía a cada uno de los dos operadores identificados medianteOut #1
yOut #2
.
Copy
no tiene argumentos.
operador DFENode
Este operador es una abstracción del plan que ejecuta el motor de consultas DFE alternativo. El DFE plan detallado se describe en los argumentos a favor de este operador. Actualmente, el argumento está sobrecargado para contener las estadísticas detalladas de tiempo de ejecución del DFE plan. Contiene el tiempo empleado en los distintos pasos de la ejecución de la consulta. DFE
El árbol sintáctico abstracto optimizado desde el punto de vista lógico (AST) para el plan de DFE consulta se imprime con información sobre los tipos de operadores que se tuvieron en cuenta durante la planificación y los costes de ejecución de los operadores, tanto en el mejor como en el peor de los casos. Por el momento, AST consta de los siguientes tipos de nodos:
DFEJoinGroupNode
: representa una unión de uno o másDFEPatternNodes
.DFEPatternNode
: encapsula un patrón subyacente mediante el cual las tuplas coincidentes se proyectan fuera de la base de datos subyacente.
La subsección,Statistics & Operator histogram
, contiene detalles sobre el tiempo de ejecución del DataflowOp
plan y el desglose del CPU tiempo utilizado por cada operador. Debajo hay una tabla que muestra las estadísticas detalladas de tiempo de ejecución del plan ejecutado porDFE.
nota
Como DFE se trata de una función experimental lanzada en modo laboratorio, el formato exacto de su explain
salida puede cambiar.
operador Distinct
Calcula la proyección distintiva en un subconjunto de las variables, eliminando los duplicados. Como resultado, el número de soluciones entrantes es mayor o igual que el número de soluciones salientes.
Argumentos
vars
: (obligatorio) las variables a las que se va a aplicar la proyecciónDistinct
.
operador Federation
Pasa una consulta específica a un SPARQL punto final remoto específico.
Argumentos
endpoint
— (Obligatorio) El punto final URL de la SPARQLSERVICE
declaración. Puede ser una cadena constante o si el punto de enlace de consulta se determina en función de una variable dentro de la misma consulta, puede ser el nombre de la variable.query
: (obligatorio) la cadena de consulta reconstruida que se enviará al punto de conexión remoto. El motor añade prefijos predeterminados a esta consulta incluso cuando el cliente no especifica ninguno.silent
: (obligatorio) un booleano que indica si la palabra claveSILENT
ha aparecido después de la palabra clave.SILENT
le dice al motor que no falle en toda la consulta, incluso si la parteSERVICE
remota falla.
operador Filter
Filtra las soluciones entrantes. Solo las soluciones que satisfacen la condición de filtro se reenvían al operador anterior; todas las demás se descartan.
Argumentos
condition
: (obligatorio) el estado del filtro.
operador HashIndexBuild
Toma una lista de enlaces y los incorpora a un índice hash cuyo nombre viene definido por el argumento solutionSet
. Normalmente, los operadores posteriores realizan uniones en este conjunto de soluciones, haciendo referencia a él por ese nombre.
Argumentos
solutionSet
: (obligatorio) el nombre del conjunto de soluciones de índice hash.-
sourceType
: (obligatorio) el tipo de origen del que se obtienen los enlaces que se van a almacenar en el índice hash:pipeline
: reúne las soluciones entrantes desde el operador que hay más abajo en la canalización del operador en el índice hash.binding set
: coloca el conjunto de enlaces fijos especificado por el argumentosourceBindingSet
en el índice hash.
sourceBindingSet
: (opcional) si el valor del argumentosourceType
esbinding set
, este argumento especifica el conjunto de enlaces estáticos que se incluirá en el índice hash.
operador HashIndexJoin
Une las soluciones entrantes con el conjunto de soluciones del índice hash identificado por el argumento solutionSet
.
Argumentos
solutionSet
: (obligatorio) nombre del conjunto de soluciones en el que se va a unir. Debe ser un índice hash que se haya construido en un paso anterior con el operadorHashIndexBuild
.-
joinType
: (obligatorio) tipo de unión que se va a realizar:join
: unión normal, que requiere una coincidencia exacta de todas las variables compartidas.optional
— Unaoptional
combinación que utiliza la semántica SPARQLOPTIONAL
del operador.minus
— Unaminus
operación conserva un mapeo para el que no existe ningún socio de unión, utilizando la semántica del SPARQLMINUS
operador.existence check
: comprueba si hay un socio de unión o no y vincula la variableexistenceCheckResultVar
al resultado de esta comprobación.
constraints
: (opcional) restricciones de unión adicionales que se tienen en cuenta durante la unión. Las uniones que no satisfacen estas restricciones se descartan.existenceCheckResultVar
: (opcional) solo se usa para uniones dondejoinType
es igual aexistence check
(consulte el argumentojoinType
anterior).
operador MergeJoin
Una unión de fusión entre varios conjuntos de soluciones, que se indican en el argumento solutionSets
.
Argumentos
solutionSets
: (obligatorio) conjuntos de la solución que van a unirse.
operador NamedSubquery
Activa la evaluación de la subconsulta indicada por el argumento subQuery
e incorpora el resultado al conjunto de soluciones especificado por el argumento solutionSet
. Las soluciones entrantes para el operador se reenvían a la subconsulta y, a continuación, al siguiente operador.
Argumentos
subQuery
: (obligatorio) nombre de la subconsulta que se va a evaluar. La subconsulta se representa explícitamente en la salida.solutionSet
: (obligatorio) nombre del conjunto de soluciones en el que se almacenará el resultado de la subconsulta.
operador PipelineJoin
Recibe como entrada la salida del operador anterior y la une con el patrón de tuplas definido por el argumento pattern
.
Argumentos
pattern
— (Obligatorio) El patrón, que adopta la forma de una tupla gráfica y subject-predicate-object, opcionalmente, en forma de gráfico, que subyace a la unión. Si se especificadistinct
para el patrón, la unión únicamente extrae soluciones distintas de las variables de proyección especificadas por el argumentoprojectionVars
, en lugar de extraer todas las soluciones coincidentes.inlineFilters
: (opcional) conjunto de filtros que se aplicarán a las variables del patrón. El patrón se evalúa junto con estos filtros.-
joinType
: (obligatorio) tipo de unión que se va a realizar:join
: unión normal, que requiere una coincidencia exacta de todas las variables compartidas.optional
— Unaoptional
unión que utiliza la semántica del SPARQLOPTIONAL
operador.minus
— Unaminus
operación conserva un mapeo para el que no existe ningún socio de unión, utilizando la semántica del SPARQLMINUS
operador.existence check
: comprueba si hay un socio de unión o no y vincula la variableexistenceCheckResultVar
al resultado de esta comprobación.
constraints
: (opcional) restricciones de unión adicionales que se tienen en cuenta durante la unión. Las uniones que no satisfacen estas restricciones se descartan.projectionVars
: (opcional) variables de proyección. Se utiliza junto condistinct := true
para aplicar la extracción de proyecciones distintas en un conjunto de variables especificado.cutoffLimit
: (opcional) límite del número de socios de unión extraídos. Aunque no existe ningún límite de forma predeterminada, puede establecer este en 1 al realizar uniones para implementar cláusulasFILTER (NOT) EXISTS
, donde es suficiente con demostrar o refutar que hay un socio de unión.
operador PipelineCountJoin
Variante del operador PipelineJoin
. En lugar de realizar la unión, solo cuenta los socios de unión coincidentes y vincula el recuento a la variable especificada por el argumento countVar
.
Argumentos
countVar
: (obligatorio) variable a la que se debe vincular el resultado del recuento, es decir, el número de socios que se unen.pattern
— (Obligatorio) El patrón, que adopta la forma de una tupla gráfica y subject-predicate-object, opcionalmente, en forma de gráfico, que subyace a la unión. Si se especificadistinct
para el patrón, la unión únicamente extrae soluciones distintas de las variables de proyección especificadas por el argumentoprojectionVars
, en lugar de extraer todas las soluciones coincidentes.inlineFilters
: (opcional) conjunto de filtros que se aplicarán a las variables del patrón. El patrón se evalúa junto con estos filtros.-
joinType
: (obligatorio) tipo de unión que se va a realizar:join
: unión normal, que requiere una coincidencia exacta de todas las variables compartidas.optional
— Unaoptional
unión que utiliza la semántica del SPARQLOPTIONAL
operador.minus
— Unaminus
operación conserva un mapeo para el que no existe ningún socio de unión, utilizando la semántica del SPARQLMINUS
operador.existence check
: comprueba si hay un socio de unión o no y vincula la variableexistenceCheckResultVar
al resultado de esta comprobación.
constraints
: (opcional) restricciones de unión adicionales que se tienen en cuenta durante la unión. Las uniones que no satisfacen estas restricciones se descartan.projectionVars
: (opcional) variables de proyección. Se utiliza junto condistinct := true
para aplicar la extracción de proyecciones distintas en un conjunto de variables especificado.cutoffLimit
: (opcional) límite del número de socios de unión extraídos. Aunque no existe ningún límite de forma predeterminada, puede establecer este en 1 al realizar uniones para implementar cláusulasFILTER (NOT) EXISTS
, donde es suficiente con demostrar o refutar que hay un socio de unión.
operador PipelinedHashIndexJoin
Se trata de un índice hash de all-in-one compilación y un operador de unión. Toma una lista de enlaces, los agrupa en un índice hash y, a continuación, une las soluciones entrantes con el índice hash.
Argumentos
-
sourceType
: (obligatorio) el tipo de origen del que se obtienen los enlaces que se van a almacenar en el índice hash. Es uno de los siguientes:pipeline
: hace quePipelinedHashIndexJoin
agrupe las soluciones entrantes desde el operador que está más abajo en la canalización del operador en el índice hash.binding set
: hace quePipelinedHashIndexJoin
agrupe el conjunto de enlaces fijos especificado por el argumentosourceBindingSet
en el índice hash.
sourceSubQuery
: (opcional) si el valor del argumentosourceType
espipeline
, este argumento especifica la subconsulta que se evalúa y se incluye en el índice hash.sourceBindingSet
: (opcional) si el valor del argumentosourceType
esbinding set
, este argumento especifica el conjunto de enlaces estáticos que se incluirá en el índice hash.-
joinType
: (obligatorio) tipo de unión que se va a realizar:join
: unión normal, que requiere una coincidencia exacta de todas las variables compartidas.optional
— Unaoptional
combinación que utiliza la semántica SPARQLOPTIONAL
del operador.minus
— Unaminus
operación conserva un mapeo para el que no existe ningún socio de unión, utilizando la semántica del SPARQLMINUS
operador.existence check
: comprueba si hay un socio de unión o no y vincula la variableexistenceCheckResultVar
al resultado de esta comprobación.
existenceCheckResultVar
— (Opcional) Solo se usa para uniones dondejoinType
es igualexistence check
(consulta el joinType argumento anterior).
operador Projection
Realiza una proyección en un subconjunto de las variables. El número de soluciones entrantes es igual al número de soluciones salientes, pero la forma de la solución es diferente, en función de la configuración de modo.
Modos
retain
: en las soluciones se conservan únicamente las variables especificadas por el argumentovars
.drop
: se eliminan todas las variables especificadas por el argumentovars
.
Argumentos
vars
: (obligatorio) las variables que se deben conservar o eliminar, según la configuración del modo.
operador PropertyPath
Habilita las rutas de propiedades recursivas como +
o *
. Neptune implementa un enfoque de iteración de punto fijo basado en una plantilla especificada por el argumento iterationTemplate
. Las variables del lado izquierdo o del lado derecho conocidas se incluyen en la plantilla para cada iteración de punto fijo hasta que no se encuentren más soluciones nuevas.
Argumentos
iterationTemplate
: (obligatorio) nombre de la plantilla de subconsulta utilizada para implementar la iteración de punto fijo.leftTerm
: (obligatorio) el término (variable o constante) que se encuentra en el lado izquierdo de la ruta de la propiedad.rightTerm
: (obligatorio) el término (variable o constante) que se encuentra en el lado derecho de la ruta de la propiedad.lowerBound
: (obligatorio) el límite inferior de la iteración de punto fijo (ya sea0
para consultas*
o1
para consultas+
).
operador TermResolution
Traduce de nuevo los valores de identificador de cadena internos a sus cadenas externas correspondientes o traduce las cadenas externas a valores de identificador de cadena internos, en función del modo.
Modos
value2id
— Asigna términos como literales y URIs a los valores de ID internos correspondientes (codificándolos según los valores internos).id2value
— Asigna los valores de ID internos a los términos correspondientes, como los literales y URIs (decodificación de los valores internos).
Argumentos
vars
— (Obligatorio) Especifica las variables cuyas cadenas o cadenas internas IDs deben mapearse.
operador Slice
Implementa un segmento sobre el flujo de soluciones entrante, utilizando la semántica SPARQL de las cláusulas LIMIT
yOFFSET
.
Argumentos
limit
: (opcional) límite en las soluciones que se van a reenviar.offset
: (opcional) desfase con el que se evalúan las soluciones para su reenvío.
operador SolutionInjection
No recibe ninguna entrada. Inyecta soluciones de forma estática en el plan de consulta y las registra en el argumento solutions
.
Los planes de consulta siempre comienzan con esta inyección estática. Si las soluciones estáticas que se van a inyectar se pueden obtener de la propia consulta uniendo distintas fuentes de enlaces estáticos (por ejemplo, de las cláusulas VALUES
o BIND
), el operador SolutionInjection
inyecta estas soluciones estáticas derivadas. En el caso más sencillo, estas soluciones reflejan enlaces que se encuentran implícitos en una cláusula VALUES
exterior.
Si no se puede obtener ninguna solución estática de la consulta, SolutionInjection
inyecta lo que se denominada la solución universal vacía, que se expande y multiplica en todo el proceso de evaluación de consultas.
Argumentos
solutions
: (obligatorio) secuencia de soluciones que inyecta el operador.
operador Sort
Ordena el conjunto de soluciones utilizando las condiciones de ordenación especificadas.
Argumentos
sortOrder
: (obligatorio) lista ordenada de variables, cada una de las cuales contiene un identificadorASC
(ascendente) oDESC
(descendente), que se utiliza secuencialmente para ordenar el conjunto de soluciones.
operador VariableAlignment
Inspecciona las soluciones de una en una, realizando la alineación en cada una de ellas con respecto a dos variables especificadas: sourceVar
y targetVar
.
Si sourceVar
y targetVar
tienen el mismo valor en una solución, las variables se consideran alineadas y la solución se reenvía con la variable sourceVar
redundante proyectada.
Si las variables se vinculan a valores diferentes, la solución se excluye por completo.
Argumentos
sourceVar
: (obligatorio) variable de origen, que se va a comparar con la variable de destino. Si la alineación se realiza correctamente en una solución, lo que significa que las dos variables tienen el mismo valor, la variable de origen se proyecta.targetVar
: (obligatorio) variable de destino con la que se compara la variable de origen. Se conserva incluso si la alineación se realiza correctamente.