¿Por qué mi consulta de Amazon Redshift supera el tiempo de espera de WLM que he establecido?

5 minutos de lectura
0

He definido un tiempo de espera de administración de cargas de trabajo (WLM) para una consulta de Amazon Redshift, pero la consulta sigue ejecutándose una vez vencido el plazo.

Breve descripción

El tiempo de espera de WLM solo se aplica a las consultas durante la fase de ejecución. Si WLM no termina una consulta cuando se esperaba, normalmente se debe a que la consulta ha pasado tiempo en etapas distintas a la de ejecución. Por ejemplo, la consulta puede esperar hasta que se analice o reescriba, esperar por un bloqueo o esperar a haya un hueco en la cola de WLM. También puede ser que la consulta llegue a la fase de retorno o que salte a otra cola.

Solución

Cuando se consulta STV_RECENTS, starttime es el momento de entrada de la consulta en el clúster, no el de inicio de la ejecución. Si el estado de la consulta en STV_RECENTS es En ejecución, está activa en el sistema. Sin embargo, la consulta no utiliza recursos del nodo de computación hasta que pasa al estado STV_INFLIGHT. Para obtener más información sobre la planificación de consultas, consulte Flujo de trabajo de planificación y ejecución de consultas.

Para ver el estado de una consulta en ejecución, consulte STV_INFLIGHT en vez de STV_RECENTS:

select \* from STV\_INFLIGHT where query = your\_query\_id;

Para obtener más información sobre las etapas de una consulta, ejecute la siguiente consulta:

select \* from SVL\_QUERY\_REPORT where query = your\_query\_id ORDER BY segment, step, slice;

Utilice la tabla STV_EXEC_STATE para averiguar el estado actual de cualquier consulta que se esté ejecutando activamente en nodos de computación:

select \* from STV\_EXEC\_STATE where query = your\_query\_id ORDER BY segment, step, slice;

A continuación se explican algunos de los motivos habituales por los que puede parecer que una consulta se ejecuta durante un periodo superior al tiempo de espera de WLM.

La consulta se encuentra en la fase de «retorno»

Hay dos pasos de «retorno». Compruebe STV_EXEC_STATE para ver si la consulta ha entrado en una de estas fases de retorno:

  • El retorno al nodo principal desde los nodos de computación
  • El retorno al cliente desde el nodo principal

Hay una restauración en curso

Una operación de lenguaje de manipulación de datos (DML) puede producir un error y la restauración. Es posible que esta operación no aparezca como «detenida» porque ya está en proceso de restauración. Puede consultar STV_EXEC_STATE para ver las restauraciones y obtener más información en STL_UNDONE.

La consulta está un tiempo en cola antes de la ejecución

Consulte STV_WLM_QUERY_STATE para ver el tiempo en cola:

select \* from STV\_WLM\_QUERY\_STATE where query = your\_query\_id;

La consulta está en espera por un bloqueo

Si la consulta está visible en STV_RECENTS, pero no en STV_WLM_QUERY_STATE, es posible que esté esperando por un bloqueo y no haya entrado en la cola. Para obtener más información, consulte ¿Cómo puedo detectar y liberar bloqueos en Amazon Redshift?

Una consulta ha saltado a otra cola

Si una consulta de lectura alcanza el límite de tiempo de espera de su cola de WLM actual, pasará a la siguiente cola de WLM. También puede ocurrir que la consulta se envíe a la siguiente cola de WLM si hay una regla de supervisión de consultas que especifica una acción de salto. Para confirmar si la consulta ha pasado a la siguiente cola, complete la siguiente consulta según su caso:

Para evitar que las consultas salten a otra cola, configure la cola de WLM o reglas de supervisión de consultas de WLM. Para obtener más información sobre los saltos de consultas, consulte Salto de cola de consultas de WLM.

Un problema de red o firewall

Si un servidor de Amazon Redshift tiene problemas para comunicarse con su cliente, es posible que el servidor se quede atascado en el estado de «retorno al cliente». Compruebe si hay conflictos con los componentes de la red, como la configuración del firewall local de entrada, las reglas de los grupos de seguridad de salida o las reglas de la lista de control de acceso de la red (ACL de red) de salida. Para obtener más información, consulte Conexión desde fuera de Amazon EC2: problema con el tiempo de espera del firewall.

Un problema con el clúster

Los problemas en el clúster propiamente dicho, por ejemplo, de hardware, pueden congelar la consulta. Cuando la consulta se congela debido a problemas con el clúster, el clúster se encuentra en estado de «error de hardware». Para recuperar un clúster de un solo nodo, restaure una instantánea. En los clústeres de varios nodos, los nodos con errores se reemplazan automáticamente.

Información relacionada

Ajuste del rendimiento de las consultas

Análisis y mejora de las consultas

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año