Optimización del rendimiento de Amazon Redshift - Claves de distribución, claves de ordenación y WLM

Explicamos la selección de estilos de distribución y claves de ordenación en Redshift, el diseño de la gestión de cargas de trabajo (WLM) y la aceleración de consultas con AQUA.

Selección del estilo de distribución

Redshift distribuye los datos entre los slices de los nodos de cómputo. La selección del estilo de distribución es la decisión de diseño más importante que afecta directamente al rendimiento de las consultas. La distribución KEY distribuye los datos según los valores de una columna especificada, colocando las filas con el mismo valor de clave en el mismo slice. Al especificar como KEY una columna utilizada frecuentemente en JOIN, se elimina la necesidad de redistribuir datos (transferencia de red) durante el JOIN, logrando una mejora significativa del rendimiento. La distribución EVEN distribuye uniformemente mediante round-robin y es adecuada para tablas sin patrones de JOIN específicos. La distribución ALL copia la tabla completa a todos los nodos y es efectiva para JOIN con tablas de dimensiones pequeñas. La distribución AUTO permite que Redshift seleccione automáticamente según el tamaño de la tabla: ALL para tablas pequeñas y EVEN para tablas grandes.

Claves de ordenación y mapas de zona

Al configurar una clave de ordenación, los datos se almacenan en disco ordenados por los valores de esa columna. Redshift registra los valores mínimo y máximo de cada bloque como mapas de zona, y las condiciones de filtro en la cláusula WHERE omiten los bloques fuera del rango del mapa de zona. Al configurar una columna de fecha como clave de ordenación y aplicar un filtro como WHERE created_at > '2026-01-01', solo se escanean los bloques del período correspondiente, reduciendo significativamente la E/S. Las claves de ordenación compuestas combinan múltiples columnas, siendo la primera columna la que filtra de forma más efectiva. Las claves de ordenación intercaladas asignan un peso igual a cada columna y son efectivas sin importar qué columna se use para filtrar, aunque la carga de VACUUM es mayor.

Gestión de cargas de trabajo y AQUA

El WLM automático optimiza automáticamente la asignación de colas y la distribución de memoria según la complejidad y los requisitos de recursos de las consultas. Resuelve el problema de que las consultas cortas de paneles sean bloqueadas por consultas ETL de larga duración, asignando recursos apropiados a las consultas de alta prioridad. Con el WLM manual se pueden definir hasta 8 colas y enrutar consultas según grupos de usuarios o grupos de consultas. AQUA es una función disponible en instancias RA3 que ejecuta operaciones de filtrado y agregación en hardware personalizado de la capa de almacenamiento. Reduce la cantidad de datos transferidos a los nodos de cómputo y acelera las consultas intensivas en escaneo hasta 10 veces. Para conocer casos de uso de almacenes de datos, los libros relacionados (Amazon) son una buena referencia.

Impacto en costos de la optimización del rendimiento

Una optimización adecuada del rendimiento conduce directamente a la reducción de costos. Optimizar las claves de distribución para reducir la redistribución de datos entre nodos acorta el tiempo de ejecución de consultas y disminuye el consumo de RPU en Serverless. Configurar claves de ordenación para mejorar la tasa de omisión de mapas de zona reduce la cantidad de datos escaneados y los costos de E/S. AQUA (Advanced Query Accelerator) está disponible sin costo adicional en nodos RA3 y descarga el procesamiento de cláusulas LIKE y filtrado a la capa de almacenamiento para mejorar el rendimiento de las consultas.

Resumen

La optimización del rendimiento de Redshift se basa en la configuración adecuada de estilos de distribución y claves de ordenación. Identifique consultas lentas con SVL_QUERY_SUMMARY y mejore revisando las claves de distribución o añadiendo claves de ordenación. Gestione la prioridad de las cargas de trabajo con WLM automático y mejore el rendimiento de escaneo con AQUA para optimizar los tiempos de respuesta en análisis de datos a gran escala.