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áusulaLIMITpara 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.
Leia também: Documentação DuckDB
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:
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?
