Troubleshooting: Corrigindo erros de execução de query no Data Warehouse

Executar consultas excessivamente pesadas pode levar ao travamento do container de processamento. Como medida de reação, o sistema realiza até três tentativas automáticas de execução. Caso a falha persista, o processo é encerrado para proteger a integridade do ambiente.

Este artigo orienta você na investigação desses erros e na aplicação de técnicas de otimização para estabilizar seus DataJobs.

Sinais do erro

O erro é identificado de duas formas:

  • No Skyone Studio: A mensagem de erro "Multiple attempts were made to process the query. Optimize the query and run it again aparecerá diretamente na interface, na aba Saída, do Data Warehouse.

  • No Fluxo: O usuário receberá um e-mail automático informando sobre a falha na execução.

O que isso significa?

Esta mensagem indica que o sistema realizou três tentativas consecutivas de executar a query, mas todas falharam. Geralmente, isso ocorre porque a consulta é excessivamente pesada (ex: processamento de centenas de milhares de linhas), causando o travamento e a reinicialização automática do container de execução.

Investigação e diagnóstico

Para resolver o problema, é necessário identificar se a query que falhou é a causa raiz ou uma vítima colateral. Verifique os seguintes pontos:

1. Revisão de Lógica

O primeiro passo para a correção é revisar a lógica da query e verificar se o volume de dados excede a capacidade do ambiente.

2. Problema da execução em paralelo

Muitas queries podem rodar simultaneamente no mesmo ambiente. Uma única query "culpada" pode consumir todos os recursos (memória/CPU), derrubando o container e gerando erros para todas as outras consultas que estavam em execução no momento.

  • Ação: Analise o que estava rodando simultaneamente para isolar a query que causou a falha.

Melhores práticas para prevenção e correção

Siga estas recomendações de otimização para evitar travamentos:

Otimização de consultas (SQL)

  • Uso de LIMIT: Ao realizar testes ou seleções em grandes volumes, utilize a cláusula LIMIT para restringir a carga inicial de dados.

  • Refatoração de colunas: Evite o uso de SELECT *. Especifique apenas as colunas necessárias para reduzir a carga de processamento.

Configurações de memória e DuckDB

  • Gerenciamento de Memória: Verifique se a query está dimensionada corretamente para os limites de memória do container.

  • Ajustes de parâmetros: Considere adicionar configurações específicas do DuckDB para melhorar a estabilidade e a performance em operações complexas.

circle-info

Exemplo prático de ajuste

Cenário de erro

Abaixo, um exemplo de query que pode causar o esgotamento de recursos ao tentar carregar dados massivos sem filtros:

Ajuste Recomendado

Ao aplicar filtros e limitar o escopo, o risco de queda do container é minimizado:

circle-info

Se o erro persistir mesmo após a otimização, realize uma investigação de Troubleshooting à parte para verificar o log de atividades paralelas e a saúde do ambiente.

Atualizado

Isto foi útil?