Usar o Spark otimizador baseado em custos - AWS Orientação prescritiva

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usar o Spark otimizador baseado em custos

Spark a versão 2.09 e posterior pode usar um otimizador baseado em custos (CBO). O CBO seleciona o plano de execução mais barato para uma consulta com base em várias estatísticas da tabela. O CBO tenta otimizar a execução da consulta com relação à utilização da CPU e à E/S, retornando assim o mais rápido possível. No entanto, na maioria dos casos, as estatísticas de dados geralmente estão ausentes, especialmente quando a coleta de estatísticas é ainda mais cara do que o processamento de dados. Mesmo que as estatísticas estejam disponíveis, elas provavelmente estão desatualizadas. A seguir estão as melhores práticas para usar o CBO:

  • Colete estatísticas sobre todas as colunas usadas em operações como junções, filtros e grupos por. Isso ajuda o otimizador a tomar melhores decisões. Use ANALYZE TABLE para coletar estatísticas.

  • Aumente a frequência da coleta de estatísticas se os dados mudarem rapidamente. Estatísticas desatualizadas podem resultar em planos não otimizados.

  • Comece com os parâmetros CBO padrão e ajuste-os somente se necessário. Otimizações agressivas podem aumentar os tempos de execução.

  • Verifique se o CBO está escolhendo os planos ideais forçando o plano otimizado e comparando o desempenho. Ative o registro do otimizador para comparar os planos.

  • Para melhores otimizações, use o CBO em combinação com dicas de particionamento, armazenamento em intervalos e distorção de dados. O particionamento pode ajudar o CBO a escalar.

  • Para detectar precocemente as regressões do plano, monitore continuamente o desempenho da consulta após ativar o CBO.