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
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,UNLOADe 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()oushuffle()não usam resultados em cache. Por exemplo,LIMITsemORDER BYnão é determinístico e não está armazenado em cache, masLIMITcomORDER 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.
Para configurar o recurso de reutilização dos resultados da consulta
-
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).
-
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).
-
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.
O exemplo a seguir especifica um tempo máximo de reutilização de dois dias.
-
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.