Usar o otimizador baseado em custos
Você pode usar o atributo otimizador baseado em custos (CBO) no Athena SQL para otimizar as consultas. Opcionalmente, você pode solicitar que o Athena colete estatísticas no nível da tabela ou da coluna para uma das tabelas do AWS Glue. Se todas as tabelas da consulta tiverem estatísticas, o Athena usará as estatísticas para criar um plano de execução que ele determina que terá a melhor performance. O otimizador de consultas calcula planos alternativos com base em um modelo estatístico e depois seleciona o que tem maior probabilidade de executar a consulta em menos tempo.
As estatísticas das tabelas do AWS Glue são coletadas e armazenadas no AWS Glue Data Catalog, e disponibilizadas ao Athena para melhorar o planejamento e a execução das consultas. Essas estatísticas são coletadas no nível da coluna, como número de valores distintos, número de valores nulos, máximos e mínimos em tipos de arquivo como Parquet, ORC, JSON, ION, CSV e XML. O Amazon Athena usa essas estatísticas para otimizar as consultas aplicando os filtros mais restritivos no processamento das consultas assim que possível. Essa filtragem limita o uso da memória e o número de registros que devem ser lidos para fornecer os resultados das consultas.
Em conjunto com o CBO, o Athena usa um atributo denominado otimizador baseado em regras (RBO). O RBO aplica mecanicamente regras que devem melhorar a performance das consultas. O RBO geralmente é útil porque suas transformações visam simplificar o plano de consulta. Porém, como o RBO não realiza cálculos de custos nem comparações de planos, consultas mais complicadas tornam difícil para o RBO criar um plano ideal.
Por isso, o Athena usa ambos o RBO e o CBO para otimizar as consultas. Depois que o Athena identifica as oportunidades de melhorar a execução das consultas, ele cria um plano ideal. Para obter mais informações sobre detalhes do plano de execução, consulte Visualização de planos de execução para consultas SQL. Para ver uma discussão detalhada sobre como o CBO funciona, consulte Speed up queries with the cost-based optimizer in Amazon Athena
Para gerar estatísticas para tabelas do AWS Glue Catalog, você pode usar o console do Athena, o console do AWS Glue ou as APIs do AWS Glue. Como o Athena é integrado ao AWS Glue Catalog, você obtém automaticamente os aprimoramentos de performance das consultas correspondentes quando executa consultas no Amazon Athena.
Considerações e limitações
-
Tipos de tabela: atualmente, o atributo CBO no Athena só é compatível com as tabelas do Hive que estão no AWS Glue Data Catalog.
-
Athena for Spark: o atributo CBO não está disponível no Athena for Spark.
-
Preços: para obter informações sobre preços, visite a página de preços do AWS Glue
.
Gerar estatísticas de uma tabela com uso do console do Athena
Esta seção descreve como usar o console do Athena para gerar estatísticas no nível da tabela ou da coluna para uma tabela no AWS Glue. Para obter informações sobre o uso do AWS Glue para gerar estatísticas de tabelas, consulte Working with column statistics no AWS Glue Developer Guide.
Gerar estatísticas para uma tabela usando o console do Athena
Abra o console do Athena em https://console.aws.amazon.com/athena/
. -
Na lista Tabelas do editor de consultas do Athena, escolha os três pontos verticais para a tabela que você deseja e depois escolha Gerar estatísticas.
-
Na caixa de diálogo Gerar estatísticas, escolha Todas as colunas para gerar estatísticas para todas as colunas da tabela ou escolha Colunas selecionadas para selecionar colunas específicas. Todas as colunas é a configuração padrão.
-
Para perfil do serviço do AWS Glue, crie ou selecione um perfil de serviço existente para dar permissão ao AWS Glue para gerar estatísticas. O perfil de serviço do AWS Glue também exige permissões de
S3:GetObject
para o bucket do Amazon S3 que contém os dados da tabela. -
Escolha Gerar estatísticas. Um banner de notificação Gerando estatísticas para a
table_name
mostra o status da tarefa. -
Para visualizar detalhes no console do AWS Glue, escolha Visualizar no Glue.
Para obter informações sobre a visualização de estatísticas no console do AWS Glue, consulte Viewing column statistics no AWS Glue Developer Guide.
-
Depois que as estatísticas são geradas, as tabelas e colunas que têm estatísticas trazem a palavra Estatísticas entre parênteses, como na imagem a seguir.
Agora, quando você executar consultas, o Athena realizará a otimização baseada em custos nas tabelas e colunas para as quais as estatísticas foram geradas.
Recursos adicionais
Para mais informações, consulte o recurso a seguir.