La sugerencia de consulta queryTimeout de SPARQL - Amazon Neptune

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.

La sugerencia de consulta queryTimeout de SPARQL

La sugerencia de consulta queryTimeout especifica un tiempo de espera que es menor que el conjunto de valores deneptune_query_timeout en el grupo de parámetros de base de datos.

Si la consulta termina como resultado de esta sugerencia, se genera una TimeLimitExceededException, con un mensaje Operation terminated (deadline exceeded).

Sintaxis de sugerencias SPARQL de queryTimeout

PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#> SELECT ... WHERE { hint:Query hint:queryTimeout 10 . # OR hint:Query hint:queryTimeout "10" . # OR hint:Query hint:queryTimeout "10"^^xsd:integer . ... }

El valor del tiempo de espera se expresa en milisegundos.

El valor del tiempo de espera debe ser menor que el valor de neptune_query_timeout establecido en el grupo de parámetros de la base de datos. De lo contrario, se generará una excepción MalformedQueryException con un mensaje Malformed query: Query hint 'queryTimeout' must be less than neptune_query_timeout DB Parameter Group.

Se debe especificar la sugerencia de consulta queryTimeout en la cláusula WHERE de la consulta principal o en la cláusula WHERE de uno de las subconsultas tal como se en el ejemplo a continuación:

Debe configurarse una sola vez en todas las secciones de consultas/subconsultas y actualizaciones de SPARQL (como INSERT y DELETE). De lo contrario, se generará una excepción MalformedQueryException con un mensaje Malformed query: Query hint 'queryTimeout' must be set only once.

Ámbitos disponibles

La sugerencia queryTimeout se puede aplicar tanto a las consultas SPARQL como a las actualizaciones.

  • En una consulta SPARQL, puede aparecer en la cláusula WHERE de la consulta principal o en una subconsulta.

  • En una actualización de SPARQL, se puede establecer en la cláusula INSERT, DELETE o WHERE. Si hay varias cláusulas de actualización, solo se puede establecer en una de ellas.

Para obtener más información acerca de los ámbitos de sugerencia de consulta, vea Ámbito de las sugerencias de consulta SPARQL en Neptune.

Ejemplo de sugerencia SPARQL queryTimeout

A continuación se muestra un ejemplo de uso de hint:queryTimeout en la cláusula principal WHERE de una consulta UPDATE:

PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#> INSERT { ?s ?p ?o } WHERE { hint:Query hint:queryTimeout 100 . ?s ?p ?o . }

Aquí, la hint:queryTimeout se encuentra en la cláusula WHERE de una subconsulta:

PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#> SELECT * { ?s ?p ?o . { SELECT ?s WHERE { hint:Query hint:queryTimeout 100 . ?s ?p1 ?o1 . } } }