DataSunrise está patrocinando AWS re:Invent 2024 en Las Vegas, por favor visítenos en el stand #2158 de DataSunrise

Escalado de Concurrencia en Redshift

Escalado de Concurrencia en Redshift

Introducción

Amazon Redshift es un potente almacén de datos que le ayuda a analizar grandes cantidades de datos rápidamente. A medida que los volúmenes de datos crecen y aumentan las demandas de los usuarios, mantener un rendimiento óptimo de las consultas puede volverse un desafío. Ahí es donde entra en juego el escalado de concurrencia en Redshift.

Este artículo cubrirá los conceptos básicos del escalado de concurrencia en Redshift, incluidos los comandos de configuración y los parámetros. También discutiremos cómo ayuda a distribuir la carga de trabajo para aplicaciones de alto rendimiento y alta disponibilidad.

¿Qué es el Escalado de Concurrencia en Redshift?

El escalado de concurrencia en Redshift ajusta la capacidad del clúster para más consultas de lectura simultáneas, marcando una gran diferencia. Cambia cuántas consultas puede manejar su grupo a la vez, asegurando que las respuestas siempre sean rápidas y consistentes.

¿Cómo funciona? Redshift aprovisiona automáticamente clústeres transitorios adicionales cuando la Concurrencia de Escalado está activada. Esto ocurre cada vez que el número de consultas de usuario concurrentes excede el umbral configurado en la cola. Los grupos temporales leen las consultas que Redshift solo puede manejar en la cola.

Su grupo principal puede continuar trabajando en otras tareas sin interrupciones. Una vez que el tamaño de la cola cae por debajo del umbral, el sistema termina automáticamente los clústeres transitorios para optimizar los costos.

Configuración del Escalado de Concurrencia

Para aprovechar el poder del escalado de concurrencia en Redshift, debe habilitarlo en su clúster. Así es cómo:

1. Asegúrese de que su clúster esté funcionando con un tipo de nodo ra3.16xlarge o superior.

2. Ejecute el siguiente comando SQL para habilitar el Escalado de Concurrencia:

ALTER CLUSTER <su-nombre-de-clúster> SET CONCURRENCY SCALING ENABLED;

3. Configure el modo de Escalado de Concurrencia usando el comando SET. Hay dos modos disponibles:

– AUTO: Redshift gestiona automáticamente el número de clústeres transitorios según la carga de trabajo. Este es el modo predeterminado.

– MANUAL: Usted especifica el número máximo de clústeres transitorios.

4. Para configurar el modo, use el siguiente comando:

ALTER CLUSTER <su-nombre-de-clúster> SET CONCURRENCY SCALING MODE 'AUTO|MANUAL';

5. Si usa el modo MANUAL, establezca el número máximo de clústeres transitorios:

ALTER CLUSTER <su-nombre-de-clúster> SET CONCURRENCY SCALING MAX_CLUSTERS <número>;

Distribución de Carga de Trabajo con Colas de Consultas

El escalado de concurrencia en Redshift funciona en conjunto con las colas de consultas para distribuir eficientemente las cargas de trabajo a través de su clúster y clústeres transitorios. Las colas de consultas le permiten priorizar y gestionar diferentes tipos de consultas según su importancia y requisitos de recursos.

Por defecto, Redshift tiene una sola cola predeterminada. Sin embargo, puede crear colas adicionales para segregar y priorizar cargas de trabajo. Aquí hay un ejemplo de cómo crear una nueva cola de consultas:

CREATE QUEUE reporting_queue
PRIORITY 5
QUERY_GROUP 'reporting';

En este ejemplo, creamos una cola de informes con una prioridad de 5. Luego vinculamos la cola de informes con un grupo de consultas llamado ‘reporting’. Las consultas enviadas a esta cola tendrán mayor prioridad que las de la cola predeterminada.

Para enrutar consultas a colas específicas, puede usar el comando SET:

SET query_group TO 'reporting';

Esta acción establece el grupo de consultas de la sesión actual a ‘reporting’, y el sistema enruta las consultas posteriores a la cola asociada.

Parámetros de Escalado de Concurrencia para Alta Disponibilidad

Al configurar el escalado de concurrencia en Redshift para aplicaciones de alta disponibilidad, existen varios parámetros clave a considerar:

  1. max_concurrency_scaling_clusters: Este parámetro especifica el número máximo de clústeres transitorios que se pueden aprovisionar. Establézcalo según los requisitos de su carga de trabajo y restricciones presupuestarias.
  2. concurrency_scaling_mode: Como se mencionó anteriormente, este parámetro determina si el Escalado de Concurrencia se gestiona automáticamente o manualmente.
  3. wlm_query_slot_count: Este parámetro establece el número de ranuras de consulta (consultas concurrentes) por clúster. Ajustelo según las características de su carga de trabajo y los recursos disponibles.
  4. query_group: Utilice grupos de consultas para enrutar consultas a colas específicas y priorizar cargas de trabajo críticas.

Aquí hay un ejemplo de configuración para un entorno de alta disponibilidad:

ALTER CLUSTER <su-nombre-de-clúster> SET CONCURRENCY SCALING MAX_CLUSTERS 5;
ALTER CLUSTER <su-nombre-de-clúster> SET CONCURRENCY SCALING MODE 'AUTO';
ALTER CLUSTER <su-nombre-de-clúster> SET wlm_query_slot_count 50;
CREATE QUEUE critical_queue
PRIORITY 10
QUERY_GROUP 'critical';
CREATE QUEUE reporting_queue
PRIORITY 5
QUERY_GROUP 'reporting';

En este ejemplo, tendremos hasta 5 clústeres temporales. También activaremos el Escalado de Concurrencia automático. Además, asignaremos 50 ranuras de consulta por clúster. Creamos dos colas, critical_queue y reporting_queue, con diferentes prioridades para manejar cargas de trabajo críticas y de informes por separado.

Ejemplo en el Mundo Real

Consideremos un escenario real donde una empresa de comercio electrónico usa Redshift para sus necesidades de almacenamiento de datos. Durante los periodos de ventas intensas, reciben muchas consultas de diferentes departamentos como ventas, inventario y análisis de clientes.

Para manejar este aumento de carga de trabajo, ellos habilitan el Escalado de Concurrencia en Redshift con la siguiente configuración:

ALTER CLUSTER ecommerce_cluster SET CONCURRENCY SCALING ENABLED;
ALTER CLUSTER ecommerce_cluster SET CONCURRENCY SCALING MODE 'AUTO';
ALTER CLUSTER ecommerce_cluster SET CONCURRENCY SCALING MAX_CLUSTERS 10;
CREATE QUEUE sales_analytics_queue
PRIORITY 8
QUERY_GROUP 'sales_analytics';
CREATE QUEUE inventory_queue
PRIORITY 6
QUERY_GROUP 'inventory';
CREATE QUEUE customer_segmentation_queue
PRIORITY 4
QUERY_GROUP 'customer_segmentation';

Cuando hay demasiadas consultas funcionando a la vez, Redshift creará más clústeres temporales para gestionar la carga de trabajo. Las consultas se distribuyen eficientemente entre el clúster principal y los clústeres transitorios según sus grupos de consultas asignados y las prioridades de las colas.

Como resultado, la empresa de comercio electrónico mantiene un rendimiento óptimo de las consultas durante los periodos pico, asegurando una rápida obtención de información para decisiones críticas de negocio. Las consultas de análisis de ventas reciben la mayor prioridad, seguidas de las consultas de gestión de inventarios y segmentación de clientes.

Conclusión

El escalado de concurrencia en Redshift le permite ajustar la capacidad de su clúster para manejar aumentos repentinos en las consultas de manera eficiente. Al aprovechar las colas de consultas y configurar la asignación de recursos, puede distribuir eficientemente las cargas de trabajo y priorizar las consultas críticas para aplicaciones de alto rendimiento y alta disponibilidad.

Recuerde considerar factores como las características de la carga de trabajo, la disponibilidad de recursos y el presupuesto al configurar el Escalado de Concurrencia. Con la configuración adecuada, puede desbloquear todo el potencial de Redshift y ofrecer un rendimiento de consultas ultrarrápido a sus usuarios.

Para obtener más información sobre el Escalado de Concurrencia en Redshift, consulte la documentación oficial de AWS:

DataSunrise: Mejorando la Seguridad y el Cumplimiento de la Base de Datos

Mientras Redshift proporciona robustas características de rendimiento y escalabilidad, garantizar la seguridad y el cumplimiento de sus datos es igualmente importante. DataSunrise ofrece herramientas amigables y flexibles para la seguridad de bases de datos, enmascaramiento y cumplimiento. Con DataSunrise, puede implementar configuraciones de alta disponibilidad y proteger sus datos sensibles.

Para aprender más sobre las soluciones de DataSunrise y verlas en acción, visite nuestro sitio web y programe su demostración personalizada hoy mismo!

Siguiente

Seguridad de SQL Server

Seguridad de SQL Server

Más información

¿Necesita la ayuda de nuestro equipo de soporte?

Nuestros expertos estarán encantados de responder a sus preguntas.

Información general:
[email protected]
Servicio al Cliente y Soporte Técnico:
support.datasunrise.com
Consultas sobre Asociaciones y Alianzas:
[email protected]