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
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
SELECTeEXECUTEnã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()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. -
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 JOINeJOINsã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.
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.
-
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.