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
,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()
oushuffle()
não usam resultados em cache. Por exemplo,LIMIT
semORDER BY
não é determinístico e não está armazenado em cache, masLIMIT
comORDER 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.