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.

nota

O recurso de reutilização de resultados de consulta exige o mecanismo do Athena versão 3. Para obter informações sobre as mudanças nas versões do mecanismo, consulte Alterar versões do mecanismo do Athena.

Atributos principais

  • A reutilização dos resultados da consulta é um recurso opcional por consulta. É possível habilitar a reutilização dos resultados da consulta por consulta.

  • 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. O padrão é 60 minutos.

  • 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 resultados de consulta armazenados correspondentes, ele não executará novamente a consulta, mas direcionará para o local do resultado anterior ou buscará dados nele.

  • Para qualquer consulta que habilite a opção de reutilização de resultados, o Athena reutiliza o último resultado da consulta salvo na pasta do grupo de trabalho somente quando todas as condições a seguir são verdadeiras:

    • A string de consulta é uma correspondência exata.

    • O banco de dados e o nome do catálogo correspondem.

    • O resultado anterior não é mais antigo que o período máximo especificado, ou não é mais antigo que 60 minutos, caso um período máximo não tenha sido especificado.

    • O Athena reutiliza somente uma execução que tenha exatamente a mesma configuração de resultado da execução atual.

    • 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 de consultas no Amazon S3 podem reutilizar os resultados da consulta. Isso significa que, por exemplo, as consultas CTAS,INSERT INTO, MERGE, UNLOAD e DDL não são aceitas.

  • 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.

  • Compatibilidade para a reutilização dos resultados da consulta no console do Athena, na API do Athena e no driver JDBC. No momento, a compatibilidade do driver ODBC para reutilização dos resultados da consulta está disponível somente para o Windows.

  • 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.

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.

    O exemplo a seguir especifica um tempo máximo de reutilização de dois dias.

    Reutilização dos resultados da consulta configurada para, no máximo, dois dias.
  4. Selecione a opção 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.

    Nova configuração dos resultados de consulta de reutilização no editor de consulta do Athena.