Configurar filas de consultas - Amazon Redshift

O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a publicação de blog .

Configurar filas de consultas

O Amazon Redshift sem servidor permite o gerenciamento de recursos de consulta baseado em filas. É possível criar filas de consultas dedicadas com regras de monitoramento personalizadas para diferentes workloads. Esse recurso oferece controle granular sobre o uso de recursos.

As regras de monitoramento de consultas (QMR) se aplicam somente em nível de grupo de trabalho do Redshift sem servidor, afetando todas as consultas executadas nesse grupo de trabalho de maneira uniforme. A abordagem baseada em filas permite criar filas com regras de monitoramento distintas. É possível atribuir essas filas perfis de usuário e grupos de consultas específicos. Cada fila opera de forma independente, com regras que afetam somente as consultas dentro da fila em questão.

As filas permitem definir predicados baseados em métricas e respostas automatizadas. Por exemplo, é possível configurar regras para cancelar automaticamente consultas que excedam os limites de tempo ou consumam muitos recursos.

Considerações

Considere o seguinte ao usar filas sem servidor:

  • As seguintes chaves de configuração do gerenciamento de workloads (WLM) usadas em clusters provisionados do Amazon Redshift não podem ser utilizadas em filas do Redshift sem servidor: max_execution_time, short_query_queue, auto_wlm, concurrency_scaling, priority, queue_type, query_concurrency, memory_percent_to_use, user_group e user_group_wild_card.

    Além disso, não é possível usar ações change_query_priority no Redshift sem servidor.

  • A ação hop (mover consultas entre filas) não é permitida no Amazon Redshift sem servidor.

  • É possível usar prioridades de fila somente em clusters provisionados do Amazon Redshift.

  • Para que não seja necessário configurar manualmente as prioridades de fila, o Amazon Redshift sem servidor gerencia automaticamente o ajuste de escala e a alocação de recursos para oferecer um desempenho ideal.

Configurar filas de consultas

É possível criar filas na guia “Limites” para um grupo de trabalho sem servidor usando o Console de gerenciamento da AWS, a AWS CLI ou a API do Redshift sem servidor.

Console

Siga estas etapas para criar uma fila para um grupo de trabalho sem servidor.

  1. Acesse seu grupo de trabalho do Redshift sem servidor.

  2. Escolha a guia “Limites”.

  3. Em Filas de consultas, escolha Habilitar filas.

    Importante

    A habilitação da opção de filas de consultas é uma alteração permanente. Não é possível reverter para o monitoramento sem filas após a habilitação dessa opção.

  4. Configure as filas usando os seguintes parâmetros:

    Parâmetros em nível de fila

    • name: identificador de fila (obrigatório, exclusivo e não vazio).

    • user_role: matriz de perfis de usuário (opcional).

    • query_group: matriz de grupos de consultas (opcional).

    • query_group_wild_card: 0 ou 1 para habilitar a correspondência de caracteres curinga (opcional).

    • user_group_wild_card: 0 ou 1 para habilitar a correspondência de caracteres curinga (opcional).

    • rules: conjunto de regras de monitoramento (opcional).

    Parâmetros em nível de regra

    • rule_name: identificador exclusivo com 32 caracteres no máximo (obrigatório).

    • predicate: conjunto de condições com um a três predicados (obrigatório).

    • action: “cancelar” ou “registrar em log” (obrigatório).

    Parâmetros em nível de predicado

    • metric_name: métrica a ser monitorada (obrigatório).

    • operator: “=”, “<” ou “>” (obrigatório).

    • value: limite numérico (obrigatório).

    Limites

    • No máximo oito filas.

    • No máximo 25 regras em todas as filas.

    • No máximo três predicados por regra.

    • O nome das regras precisa ser globalmente exclusivo.

Exemplo de configuração

Três exemplos de fila: um de consultas ao painel com um tempo limite curto, um de consultas de ETL com um tempo limite longo e um de fila de administrador:

[ { "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"] } ]

Neste exemplo:

  • As consultas ao painel serão canceladas se forem executadas durante mais de 60 segundos.

  • As consultas de ETL serão registradas em log se forem executadas durante mais de uma hora.

  • A fila de administrador não tem nenhum limite de recurso.

CLI

É possível gerenciar filas usando as APIs CreateWorkgroup ou UpdateWorkgroup com o parâmetro de configuração wlm_json_configuration para especificar filas no 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áticas recomendadas

Lembre-se das seguintes práticas recomendadas ao usar filas sem servidor:

  • Use filas separadas para workloads com requisitos de limite distintos (p. ex., ETL, geração de relatórios ou análise ad hoc).

  • Comece com limites simples e ajuste com base no comportamento da consulta e nos padrões de uso. É possível monitorar os padrões de uso de consultas usando as tabelas e exibições documentadas em Tabelas de sistema e visualizações para regras de monitoramento de consultas.