¿Por qué se cancela o detiene mi consulta de Amazon Redshift sin servidor?

4 minutos de lectura
0

Quiero saber por qué Amazon Redshift sin servidor canceló o detuvo mi consulta y recibo un mensaje de error.

Descripción corta

Los siguientes son los motivos por los que se cancela o detiene una consulta en Amazon Redshift:

  • Ha alcanzado la cuota de consultas.
  • Ha alcanzado la cuota de uso del grupo de trabajo para las unidades de procesamiento de Redshift (RPU).
  • La consulta ha superado el valor de statement_timeout.
  • Otro usuario ha detenido o cancelado la consulta.
  • Hay problemas con la conexión de red.

Resolución

Comprobación de la cuota de consultas de grupos de trabajo de Amazon Redshift sin servidor

Cuando alcanza la cuota de consultas del grupo de trabajo, la consulta devuelve el siguiente mensaje de error:

«ERROR: Consulta (6800381) cancelada a petición del usuario».

Para confirmar que Amazon Redshift canceló la consulta porque usted alcanzó la cuota, ejecute la siguiente instrucción SQL desde Amazon Redshift Query Editor:

SELECT query_id, query_text, error_message from SYS_QUERY_HISTORY WHERE error_message ILIKE '%cancelled on user%';

Para resolver este problema, aumente la cuota de consultas del grupo de trabajo.

Comprobación de la cuota de uso de grupos de trabajo de Amazon Redshift sin servidor para las RPU

Cuando alcanza la cuota de uso del grupo de trabajo para las RPU, la consulta muestra el siguiente mensaje de error:

«Error: La consulta ha alcanzado el límite de uso».

Para confirmar que Amazon Redshift canceló la consulta porque usted alcanzó la cuota de uso, ejecute la siguiente instrucción SQL desde Amazon Redshift Query Editor:

SELECT query_id, query_text, usage_limit, error_message FROM SYS_QUERY_HISTORY WHERE error_message ILIKE '%reached usage limit%';

Para resolver este problema, aumente la cuota de uso del grupo de trabajo.

Comprobación de si la consulta ha superado el valor de statement_timeout

Cuando una consulta supera el valor de statement_timeout, Amazon Redshift cancela las consultas que envíe durante la sesión. La consulta devuelve el siguiente mensaje de error:

«ERROR: Consulta (150) cancelada a petición del usuario».

Para comprobar el tiempo de espera de la instrucción del clúster, ejecute la siguiente instrucción SQL desde Amazon Redshift Query Editor:

SHOW statement_timeout;

La instrucción muestra el tiempo de espera de la instrucción a nivel de clúster en milisegundos. Para cambiar la salida, modifique los parámetros en la configuración de administración de la carga de trabajo.

Para confirmar que Amazon Redshift canceló la consulta porque se agotó el tiempo de espera de una instrucción, ejecute la siguiente instrucción SQL desde Amazon Redshift Query Editor:

SELECT * FROM SYS_QUERY_HISTORY WHERE query_text ILIKE '%set%statement_timeout%to%';

Si Amazon Redshift canceló la consulta, ejecute el siguiente comando para aumentar el valor de statement_timeout:

SET statement_timeout = (value)

Nota: Sustituya (valor) por un valor superior al valor de statement_timeout anterior.

Comprobación de si otro usuario ha detenido o cancelado la consulta

Para comprobar si otro usuario ha detenido o cancelado una consulta, ejecute el siguiente comando y revise la columna error_message:

SELECT * FROM sys_query_history WHERE session_id = process_id;

Nota: Sustituya process_id por su ID de proceso.

Para ver las consultas detenidas, ejecute la siguiente instrucción SQL desde Amazon Redshift Query Editor:

SELECT * FROM sys_query_history WHERE error_message ILIKE '%terminate%';

Para ver las consultas canceladas, ejecute la siguiente instrucción SQL desde Amazon Redshift Query Editor:

SELECT * FROM sys_query_history WHERE error_message ILIKE '%canceled by user%';

Si la consulta aparece en la salida, significa que un usuario ha detenido o cancelado la consulta.

Nota: Los usuarios solo pueden detener su propia sesión. Un superusuario puede detener todas las sesiones.

Problemas de red

Los problemas de red también pueden cancelar las consultas.

Para comprobar si hay algún problema con la conexión de red, ejecute el siguiente comando para comprobar la vista de supervisión de SYS_CONNECTION_LOG:

SELECT * FROM SYS_CONNECTION_LOG WHERE session_id = process_id;

Nota: Sustituya process_id por su ID de proceso.

Información relacionada

¿Por qué se canceló mi consulta en Amazon Redshift?

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 4 meses