View a markdown version of this page

Reutilização de resultados da consulta no Athena - Amazon Athena

Reutilização de resultados da consulta no Athena

Ao executar novamente uma consulta no Athena, é possível optar por reutilizar o último resultado de consulta armazenado, se desejar. Essa opção pode aumentar a performance e reduzir os custos, em termos de números, para os bytes verificados. A reutilização dos resultados da consulta é útil se, por exemplo, você souber que os resultados não serão alterados em um determinado período de tempo. É possível especificar um período máximo para a reutilização dos resultados da consulta. O Athena usará o resultado armazenado desde que não seja mais antigo do que o período especificado. Para obter mais informações, consulte Reduzir custo e melhorar o desempenho de consultas com Amazon Athena no Blog de Big Data da AWS.

Atributos principais

Ao habilitar a reutilização de resultados para uma consulta, o Athena irá procurar uma execução anterior da consulta no mesmo grupo de trabalho. Se o Athena encontrar uma correspondência, ela ignorará a execução e retornará o resultado da consulta da execução anterior correspondente. É possível habilitar a reutilização dos resultados da consulta por consulta.

O Athena reutilizará o resultado da última consulta quando todas as seguintes condições forem verdadeiras:

  • As strings de consulta correspondem conforme determinado por Athena.

  • Os nomes do banco de dados e do catálogo correspondem.

  • O resultado anterior não expirou.

  • A configuração do resultado da consulta corresponde à configuração do resultado da consulta da execução anterior.

  • Você tem acesso a todas as tabelas referenciadas na consulta.

  • Você tem acesso ao local do arquivo S3 no qual o resultado anterior está armazenado.

Se alguma dessas condições não for atendida, o Athena executará a consulta sem usar os resultados armazenados em cache.

Considerações e limitações

Ao usar o recurso de reutilização dos resultados da consulta, lembre-se dos seguintes pontos:

  • O Athena reutiliza os resultados da consulta somente dentro do mesmo grupo de trabalho.

  • O recurso de reutilização dos resultados da consulta respeita as configurações do grupo de trabalho. Se você substituir a configuração de resultado de uma consulta, o recurso será desativado.

  • Somente consultas que produzem conjuntos de resultados no Amazon S3 são compatíveis. As instruções que não sejam SELECT e EXECUTE não são compatíveis.

  • Tabelas do Apache Hive, Apache Hudi, Apache Iceberg e Linux Foundation Delta Lake registradas com AWS Glue são suportados. Metastores do Hive externos não são compatíveis.

  • Não há suporte para as consultas que fazem referência a catálogos federados ou a um metastore Hive externo.

  • Não há suporte para a reutilização dos resultados da consulta para tabelas governadas do Lake Formation.

  • A reutilização do resultado da consulta não é compatível quando o local da origem da tabela no Amazon S3 é registrado como um local de dados no Lake Formation.

  • Não há suporte para tabelas com permissões de linha e de coluna.

  • Tabelas com controle de acesso refinado (por exemplo, filtragem de colunas ou linhas) não são compatíveis.

  • Qualquer consulta que referencie uma tabela não compatível não está qualificada para reutilizar os resultados da consulta.

  • O Athena requer que você tenha permissões de leitura do Amazon S3 para que o arquivo de saída gerado anteriormente seja reutilizado.

  • O recurso de reutilização dos resultados da consulta assume que o conteúdo do resultado anterior não foi modificado. O Athena não verifica a integridade de um resultado anterior antes de usá-lo.

  • Se os resultados da consulta da execução anterior foram excluídos ou movidos para um local diferente no Amazon S3, a execução subsequente da mesma consulta não reutilizará os resultados da consulta anterior.

  • Há a possibilidade de que resultados potencialmente obsoletos retornem. O Athena não verifica alterações nos dados de origem até que o período máximo de reutilização especificado seja atingido.

  • Se diversos resultados estiverem disponíveis para reutilização, o Athena usará o resultado mais recente.

  • Consultas que usam operadores ou funções não determinísticas como rand() ou shuffle() não usam resultados em cache. Por exemplo, LIMIT sem ORDER BY não é determinístico e não está armazenado em cache, mas LIMIT com ORDER BY é determinístico e está armazenado em cache.

  • Para usar o recurso de reutilização de resultados de consulta com o JDBC, a versão mínima necessária do driver é 2.0.34.1000. Para ODBC, a versão mínima necessária do driver é 1.1.19.1002. Para obter informações sobre download de drivers, consulte Conectar ao Amazon Athena com drivers JDBC e ODBC.

  • Não há compatibilidade para reutilizar os resultados da consulta em consultas que usem mais de um catálogo de dados.

  • Não há compatibilidade para reutilizar os resultados da consulta em consultas que incluam mais de 20 tabelas.

  • Para strings de consulta com menos de 100 KB, as diferenças nos comentários e no espaço em branco são ignoradas, e INNER JOIN e JOIN são tratados como equivalentes para fins de reutilização dos resultados. As strings de consulta maiores que 100 KB devem ser uma correspondência exata para reutilizar os resultados.

  • Um resultado de consulta será considerado expirado se for mais antigo que o período máximo especificado, ou mais antigo que o padrão de 60 minutos se um período máximo não tiver sido especificado. O período máximo para a reutilização dos resultados da consulta pode ser especificada em minutos, horas ou dias. O período máximo especificado é equivalente a sete dias, independentemente da unidade de tempo usada.

  • Os resultados de consultas gerenciadas não é compatível.

Como reutilizar os resultados da consulta no console do Athena

Para usar o recurso, habilite a opção Reuse query results (Reutilizar resultados da consulta) no editor de consultas do Athena.

Habilite Reuse query results (Reutilizar resultados da consulta) no editor de consultas do Athena.
Para configurar o recurso de reutilização dos resultados da consulta
  1. No editor de consultas do Athena, na opção Reuse query results (Reutilizar resultados da consulta), escolha o ícone de edição ao lado de up to 60 minutes ago (até 60 minutos atrás).

  2. Na caixa de diálogo Edit reuse time (Editar tempo de reutilização), na caixa à direita, escolha uma unidade de tempo (minutos, horas ou dias).

  3. Na caixa à esquerda, insira ou escolha o número de unidades de tempo que deseja especificar. O tempo máximo que é possível inserir é o equivalente a sete dias, independentemente da unidade de tempo escolhida.

    Como configurar o tempo máximo para a reutilização dos resultados da consulta.
  4. Escolha Confirmar.

    Uma barra de notificação confirmará sua alteração de configuração e a opção Reuse query results (Reutilizar resultados da consulta) exibirá a nova configuração.