Reutilización de resultados de las consultas en Athena
Al volver a ejecutar una consulta en Athena, puede optar por reutilizar el último resultado almacenado de la consulta. Esta opción puede aumentar el rendimiento y reducir los costos en términos del número de bytes escaneados. Reutilizar los resultados de las consultas es útil si, por ejemplo, sabe que los resultados no cambiarán dentro de un periodo de tiempo determinado. Puede especificar una antigüedad máxima para reutilizar resultados de las consultas. Athena usa el resultado almacenado siempre que no sea anterior a la antigüedad que usted especifique. Para obtener más información, consulte Reducir los costos y mejorar el rendimiento de las consultas con Amazon Athena
nota
La característica de reutilización de resultados de consultas requiere la versión 3 del motor Athena. Para obtener más información acerca del cambio de las versiones del motor Athena, consulte Cambio de las versiones del motor Athena.
Características principales
-
La reutilización de los resultados de las consultas es una característica opcional por consulta. Puede habilitar la reutilización de los resultados de las consultas por consulta.
-
La antigüedad máxima para reutilizar resultados de las consultas puede especificarse en minutos, horas o días. La antigüedad máxima especificable equivale a 7 días, independientemente de la unidad de tiempo utilizada. El valor predeterminado es de 60 minutos.
-
Al habilitar la reutilización de resultados para una consulta, Athena busca una ejecución anterior de la consulta dentro del mismo grupo de trabajo. Si Athena encuentra los resultados de la consulta almacenados correspondientes, no vuelve a ejecutar la consulta, sino que apunta a la ubicación del resultado anterior o extrae datos de ella.
-
Para cualquier consulta que habilite la opción de reutilización de resultados, Athena reutiliza el último resultado de la consulta guardado en la carpeta del grupo de trabajo solo cuando se cumplen todas las siguientes condiciones:
-
La cadena de consulta coincide de forma exacta.
-
El nombre del catálogo y la base de datos coinciden.
-
El resultado anterior no supera la antigüedad máxima especificada o no supera los 60 minutos si no se ha especificado una antigüedad máxima.
-
Athena solo reutiliza una ejecución que tenga exactamente la misma configuración de resultados que la ejecución actual.
-
Tiene acceso a todas las tablas a las que se hace referencia en la consulta.
-
Tiene acceso a la ubicación del archivo de S3 donde se almacena el resultado anterior.
-
Si no se cumple alguna de estas condiciones, Athena ejecuta la consulta sin utilizar los resultados almacenados en caché.
Consideraciones y limitaciones
Cuando utilice la característica de reutilización de resultados de las consultas, tenga en cuenta los siguientes puntos:
-
Athena reutiliza los resultados de las consultas solo dentro del mismo grupo de trabajo.
-
La característica de reutilización de los resultados de las consultas respeta las configuraciones de los grupos de trabajo. Si anula la configuración de resultados de una consulta, la característica se deshabilita.
-
Solo las consultas que producen conjuntos de resultados de consultas en Amazon S3 pueden reutilizar los resultados de las consultas. Esto significa que, por ejemplo, las consultas CTAS,
INSERT INTO
,MERGE
,UNLOAD
y DDL no son compatibles. -
Se admiten las tablas de Apache Hive, Apache Hudi, Apache Iceberg y Linux Foundation Delta Lake registradas con AWS Glue. No se admiten los almacenes de metadatos externos de Hive.
-
No se admiten las consultas que hagan referencia a catálogos federados o a un metaalmacén de Hive externo.
-
No se admite la reutilización de los resultados de las consultas en las tablas controladas de Lake Formation.
-
No se admite la reutilización de los resultados de las consultas cuando la ubicación de Amazon S3 del origen de la tabla se ha registrado como una ubicación de datos en Lake Formation.
-
No se admiten tablas con permisos de fila y columna.
-
No se admiten las tablas que tienen un control de acceso detallado (por ejemplo, filtrado de columnas o filas).
-
Las consultas que hagan referencia a una tabla no admitida no son aptas para la reutilización de los resultados de las consultas.
-
Athena requiere que disponga de permisos de lectura de Amazon S3 para poder volver a utilizar el archivo de salida generado anteriormente.
-
La característica de reutilización de los resultados de las consultas asume que el contenido del resultado anterior no se ha modificado. Athena no comprueba la integridad de un resultado anterior antes de usarlo.
-
Si los resultados de las consultas de la ejecución anterior se eliminaron o se movieron a una ubicación diferente en Amazon S3, la ejecución posterior de las mismas consultas no reutilizará los resultados de las consultas.
-
Se pueden devolver resultados potencialmente obsoletos. Athena no comprueba si hay cambios en los datos de origen hasta que se haya alcanzado la antigüedad máxima de reutilización que usted especifique.
-
Si hay varios resultados disponibles para su reutilización, Athena utiliza el resultado más reciente.
-
Las consultas que utilizan operadores no deterministas o funciones como
rand()
oshuffle()
no utilizan resultados almacenados en caché. Por ejemplo,LIMIT
sinORDER BY
no es determinista y no se almacena en caché, peroLIMIT
conORDER BY
es determinista y se almacena en caché. -
La reutilización de los resultados de las consultas se admite en la consola de Athena, en la API de Athena y en el controlador JDBC. Actualmente, la compatibilidad con el controlador ODBC para la reutilización de los resultados de las consultas solo está disponible para Windows.
-
Para utilizar la característica de reutilización de resultados de consultas con JDBC, la versión del controlador mínima requerida es la 2.0.34.1000. Para ODBC, la versión del controlador mínima requerida es la 1.1.19.1002. Para obtener información acerca de la descarga de los controladores, consulte Conexión a Amazon Athena con controladores ODBC y JDBC.
-
No se admite la reutilización de los resultados de las consultas en las consultas que utilicen más de un catálogo de datos.
-
No se admite la reutilización de los resultados de las consultas en las consultas que incluyan más de 20 tablas.
Cómo reutilizar los resultados de las consultas en la consola de Athena
Para utilizar la característica, active la opción Reutilizar los resultados de las consultas en el editor de consultas de Athena.
Cómo configurar la característica de reutilización de los resultados de las consultas
-
En el editor de consultas de Athena, en la opción Reutilizar los resultados de las consultas, seleccione el icono de edición situado junto a hace menos de 60 minutos.
-
En el cuadro de diálogo Editar tiempo de reutilización, en el cuadro de la derecha, elija una unidad de tiempo (minutos, horas o días).
-
En el cuadro de la izquierda, introduzca o elija el número de unidades de tiempo que desee especificar. El tiempo máximo que puede introducir equivale a siete días, independientemente de la unidad de tiempo elegida.
El siguiente ejemplo especifica un tiempo de reutilización máximo de dos días.
-
Elija Confirmar.
Un banner confirma el cambio de configuración y la opción Reutilizar los resultados de las consultas muestra la nueva configuración.