Configuración de colas de consultas - Amazon Redshift

Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del parche 198. Las UDF de Python existentes seguirán funcionando hasta el 30 de junio de 2026. Para obtener más información, consulte la publicación del blog.

Configuración de colas de consultas

Amazon Redshift sin servidor admite la administración de recursos de consultas basada en colas. Puede crear colas de consultas específicas con reglas de supervisión personalizadas para diferentes cargas de trabajo. Esta característica proporciona un control detallado del uso de los recursos.

Las reglas de supervisión de consultas (QMR) se aplican solo en el nivel de grupo de trabajo Redshift sin servidor y afectan de manera uniforme a todas las consultas que se ejecutan en este grupo de trabajo. El enfoque basado en colas permite crear colas con reglas de supervisión distintas. Puede asignar estas colas a roles de usuario y grupos de consultas específicos. Cada cola funciona de forma independiente y las reglas solo afectan a las consultas incluidas en esa cola.

Las colas permiten establecer predicados basados en métricas y respuestas automatizadas. Por ejemplo, puede configurar reglas para anular automáticamente las consultas que superen los límites de tiempo o consuman demasiados recursos.

Consideraciones

Tenga en cuenta lo siguiente al utilizar colas sin servidor:

  • Las siguientes claves de configuración de gestión de la carga de trabajo (WLM) utilizadas en los clústeres aprovisionados de Amazon Redshift no son compatibles con las colas de Redshift sin servidor: max_execution_time, short_query_queue, auto_wlm, concurrency_scaling, priority, queue_type, query_concurrency, memory_percent_to_use, user_group, user_group_wild_card.

    Además, las acciones hop, change_query_priority no se admiten en la opción sin servidor.

  • Amazon Redshift sin servidor no admite la acción de salto (mover consultas entre colas).

  • Las prioridades de cola solo son compatibles con los clústeres aprovisionados de Amazon Redshift.

  • Amazon Redshift sin servidor administra automáticamente el escalado y la asignación de recursos para lograr un rendimiento óptimo, por lo que no es necesario configurar manualmente las prioridades de las colas.

Configuración de colas de consultas

Puede crear colas en la pestaña «Límites» para un grupo de trabajo sin servidor mediante la Consola de administración de AWS, la AWS CLI o la API de Redshift sin servidor.

Console

Siga estos pasos para crear una cola para su grupo de trabajo sin servidor.

  1. Vaya a su grupo de trabajo Redshift sin servidor.

  2. Seleccione la pestaña «Límites».

  3. En Colas de consultas, seleccione Habilitar colas.

    importante

    La habilitación de las colas de consultas es un cambio permanente. Una vez habilitadas, no se puede volver a la supervisión sin colas.

  4. Configure sus colas utilizando los siguientes parámetros:

    Parámetros de nivel de cola

    • name: identificador de cola (obligatorio, único, no vacío)

    • user_role: matriz de roles de usuario (opcional)

    • query_group: matriz de grupos de consulta (opcional)

    • query_group_wild_card: 0 o 1 para permitir la coincidencia de caracteres comodín (opcional)

    • user_group_wild_card: 0 o 1 para permitir la coincidencia de caracteres comodín (opcional)

    • rules: conjunto de reglas de supervisión (opcional)

    Parámetros a nivel de regla

    • rule_name: identificador único, máximo 32 caracteres (obligatorio)

    • predicate: matriz de condiciones, de 1 a 3 predicados (obligatorio)

    • action: «anular» o «registrar» (obligatorio)

    Parámetros de nivel de predicado

    • metric_name: métrica que se va a supervisar (obligatorio)

    • operator: «=», «<» o «>» (obligatorio)

    • value: umbral numérico (obligatorio)

    Límites

    • Máximo de 8 colas

    • Máximo de 25 reglas en todas las colas

    • Máximo de 3 predicados por regla

    • El nombre debe ser único de forma global.

Configuración de ejemplo

Ejemplo de tres colas: una para consultas de paneles con un tiempo de espera corto, otra para consultas ETL con un tiempo de espera largo y una cola de administración:

[ { "name": "dashboard", "user_role": ["analyst", "viewer"], "query_group": ["reporting"], "query_group_wild_card": 1, "rules": [ { "rule_name": "short_timeout", "predicate": [ { "metric_name": "query_execution_time", "operator": ">", "value": 60 } ], "action": "abort" } ] }, { "name": "ETL", "user_role": ["data_scientist"], "query_group": ["analytics", "ml"], "rules": [ { "rule_name": "long_timeout", "predicate": [ { "metric_name": "query_execution_time", "operator": ">", "value": 3600 } ], "action": "log" }, { "rule_name": "memory_limit", "predicate": [ { "metric_name": "query_temp_blocks_to_disk", "operator": ">", "value": 100000 } ], "action": "abort" } ] }, { "name": "admin_queue", "user_role": ["admin"], "query_group": ["admin"] } ]

En este ejemplo:

  • Las consultas del panel de control se cancelan si duran más de 60 segundos

  • Las consultas ETL se registran si se ejecutan durante más de una hora

  • La cola de administración no tiene límites de recursos

CLI

Puede administrar las colas mediante las API CreateWorkgroup o UpdateWorkgroup con el parámetro de configuración wlm_json_configuration para especificar las colas en formato JSON.

aws redshift-serverless create-workgroup \ --workgroup-name test-workgroup \ --namespace-name test-namespace \ --config-parameters '[{"parameterKey": "wlm_json_configuration", "parameterValue": "[{\"name\":\"dashboard\",\"user_role\":[\"analyst\",\"viewer\"],\"query_group\":[\"reporting\"],\"query_group_wild_card\":1,\"rules\":[{\"rule_name\":\"short_timeout\",\"predicate\":[{\"metric_name\":\"query_execution_time\",\"operator\":\">\",\"value\":60}],\"action\":\"abort\"}]},{\"name\":\"ETL\",\"user_role\":[\"data_scientist\"],\"query_group\":[\"analytics\",\"ml\"],\"rules\":[{\"rule_name\":\"long_timeout\",\"predicate\":[{\"metric_name\":\"query_execution_time\",\"operator\":\">\",\"value\":3600}],\"action\":\"log\"},{\"rule_name\":\"memory_limit\",\"predicate\":[{\"metric_name\":\"query_temp_blocks_to_disk\",\"operator\":\">\",\"value\":100000}],\"action\":\"abort\"}]},{\"name\":\"admin_queue\",\"user_role\":[\"admin\"],\"query_group\":[\"admin\"]}]"}]'

Prácticas recomendadas

Tenga en cuenta las siguientes prácticas recomendadas cuando use colas sin servidor.

  • Utilice colas separadas para las cargas de trabajo con requisitos de límite distintos (por ejemplo, ETL, informes o análisis ad hoc).

  • Comience con umbrales simples y ajústelos en función del comportamiento de las consultas y los patrones de uso. Puede supervisar los patrones de uso de las consultas mediante las tablas y vistas documentadas en las Tablas y vistas de sistema para reglas de monitoreo de consultas.