Implementación de WLM automática - Amazon Redshift

Implementación de WLM automática

Con la administración de cargas de trabajo (WLM) automática, Amazon Redshift administra la simultaneidad de consultas y la asignación de memoria. Puede crear hasta ocho colas con los identificadores de clase de servicio 100-107. Cada cola tiene una prioridad. Para obtener más información, consulte Prioridad de consulta.

La WLM automática determina la cantidad de recursos que necesitan las consultas y ajusta la simultaneidad en función de la carga de trabajo. Cuando en el sistema hay consultas que requieren grandes cantidades de recursos (por ejemplo, combinaciones hash entre tablas grandes), la simultaneidad es inferior. Cuando se envían consultas más ligeras (como por ejemplo inserciones, eliminaciones, exámenes o agregaciones sencillas), la simultaneidad es superior.

La WLM automática es independiente de la aceleración de consultas cortas (SQA) y evalúa las consultas de forma diferente. La WLM automática y la SQA funcionan conjuntamente para permitir que las consultas ligeras y de corta ejecución se completen incluso si hay activas consultas de uso intensivo de recursos y de ejecución prolongada. Para obtener más información acerca de SQA, consulte Trabajo con aceleración de consultas cortas.

Amazon Redshift habilita la WLM automática a través de grupos de parámetros:

  • Si los clústeres utilizan el grupo de parámetros predeterminado, Amazon Redshift habilita la WLM automática para ellos.

  • Si los clústeres utilizan grupos de parámetros personalizados, puede configurar los clústeres para habilitar la WLM automática. Le recomendamos que cree un grupo de parámetros independiente para la configuración de WLM automática.

Para configurar WLM, edite el parámetro wlm_json_configuration en un grupo de parámetros que se puede asociar a uno o varios clústeres. Para obtener más información, consulte Modificación de la configuración de WLM.

Puede definir colas de consultas dentro de la configuración de WLM. Puede añadir colas de consultas adicionales a la configuración de WLM predeterminada, hasta llegar a un total de ocho colas de usuario. Para cada cola de consultas, puede configurar lo siguiente:

  • Priority (Prioridad)

  • Modo de escalado de simultaneidad

  • Grupos de usuarios

  • Grupos de consultas

  • Reglas de monitorización de consultas

Priority (Prioridad)

Puede definir la importancia relativa de las consultas en una carga de trabajo estableciendo un valor de prioridad. La prioridad se especifica para una cola y la heredan todas las consultas asociadas a la cola. Para obtener más información, consulte Prioridad de consulta.

Modo de escalado de simultaneidad

Cuando el escalado de simultaneidad está habilitado, Amazon Redshift agrega capacidad del clúster de manera automática si se necesita para procesar un aumento de las consultas de lectura y escritura simultáneas. Los usuarios ven siempre los datos más actualizados, tanto si las consultas se ejecutan en el clúster principal como si se ejecutan en un clúster de escalado de simultaneidad.

Puede administrar qué consultas se envían al clúster de escalado de simultaneidad configurando colas de WLM. Cuando habilita el escalado de simultaneidad para una cola, las consultas elegibles se envían al clúster de escalado de simultaneidad en lugar de esperar en la cola. Para obtener más información, consulte Trabajo con escalado de simultaneidad.

Grupos de usuarios

Puede asignar un conjunto de grupos de usuarios a una cola especificando cada nombre de grupo de usuarios o utilizando comodines. Cuando un miembro de un grupo de usuarios de la lista ejecuta una consulta, esa consulta se ejecuta en la cola correspondiente. No hay un límite establecido en cuanto al número de grupos de usuarios que se pueden asignar a una cola. Para obtener más información, consulte Asignación de consultas a las colas en función de los grupos de usuarios.

Grupos de consultas

Puede asignar un conjunto de grupos de consultas a una cola especificando cada nombre de grupo de consultas o utilizando comodines. Un grupo de consultas es sencillamente una etiqueta. En tiempo de ejecución, puede asignar la etiqueta de grupo de consultas a un conjunto de consultas. Cualquier consulta que se asigne a un grupo de consultas de la lista se ejecuta en la cola correspondiente. No hay un límite establecido para el número de grupos de consultas que se pueden asignar a una cola. Para obtener más información, consulte Asignación de una consulta a un grupo de consultas.

Caracteres comodín

Si los comodines están habilitados en la configuración de la cola de WLM, puede asignar grupos de usuarios y de consultas a una cola individualmente o utilizando los comodines de estilo shell Unix. La coincidencia de patrones distingue entre mayúsculas y minúsculas.

Por ejemplo, el comodín «*» coincide con cualquier número de caracteres. Así, si añade dba_* a la lista de grupos de usuario para una cola, cualquier consulta ejecutada por un usuario que pertenece a un grupo con un nombre que comienza por dba_ se asigna a esa cola. Algunos ejemplos son dba_admin o DBA_primary. El comodín «?» coincide con cualquier carácter individual. Así, si la cola incluye el grupo de usuarios dba?1, entonces los grupos de usuarios denominados dba11 y dba21 coinciden, pero dba12 no coincide.

De forma predeterminada, los comodines no están habilitados.

Reglas de monitorización de consultas

Las reglas de monitorización de consultas definen los límites de rendimiento basados en métricas para las colas de WLM y especifican la acción que se debe realizar cuando una consulta va más allá de esos límites. Por ejemplo, para una cola dedicada a consultas de ejecución corta, puede crear una regla que cancele las consultas que se ejecuten durante más de 60 segundos. Para hacer un seguimiento de las consultas mal diseñadas, puede disponer de otra regla que registre las consultas que contienen bucles anidados. Para obtener más información, consulte Reglas de monitoreo de consultas de WLM.

Comprobación de WLM automática

Para saber si la WLM automática está habilitada, ejecute la consulta siguiente. Si la consulta devuelve al menos una fila, la WLM automática está habilitada.

select * from stv_wlm_service_class_config where service_class >= 100;

En la consulta siguiente, se muestra el número de consultas que pasaron por cada cola de consultas (clase de servicio). También se muestra el tiempo de ejecución medio, el número de consultas con un tiempo de espera establecido en el percentil 90 y el tiempo de espera medio. Las consultas de WLM automática utilizan las clases de servicio 100 a 107.

select final_state, service_class, count(*), avg(total_exec_time), percentile_cont(0.9) within group (order by total_queue_time), avg(total_queue_time) from stl_wlm_query where userid >= 100 group by 1,2 order by 2,1;

Para saber qué consultas se han ejecutado mediante la WLM automática y se han completado correctamente, ejecute la consulta siguiente.

select a.queue_start_time, a.total_exec_time, label, trim(querytxt) from stl_wlm_query a, stl_query b where a.query = b.query and a.service_class >= 100 and a.final_state = 'Completed' order by b.query desc limit 5;