Reutilización de resultados de las consultas en Athena - Amazon Athena

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 en el Blog de macrodatos de AWS.

Características principales de

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 una coincidencia, omite la ejecución y devuelve el resultado de la consulta de la ejecución anterior coincidente. Puede habilitar la reutilización de los resultados de las consultas por consulta.

Athena reutiliza el resultado de la última consulta cuando se cumplen todas las condiciones siguientes:

  • Las cadenas de consulta coinciden según lo determinado por Athena.

  • Los nombres del catálogo y la base de datos coinciden.

  • El resultado anterior no ha vencido.

  • La configuración de los resultados de la consulta coincide con la configuración de los resultados de la consulta de la ejecución anterior.

  • 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 se admiten las consultas que producen conjuntos de resultados en Amazon S3. No se admiten instrucciones distintas de SELECT y EXECUTE.

  • 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() o shuffle() no utilizan resultados almacenados en caché. Por ejemplo, LIMIT sin ORDER BY no es determinista y no se almacena en caché, pero LIMIT con ORDER BY es determinista y se almacena en caché.

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

  • En el caso de las cadenas de consulta con un tamaño inferior a 100 KB, se ignoran las diferencias en los comentarios y los espacios en blanco, y INNER JOIN y JOIN se tratan como equivalentes con el fin de reutilizar los resultados. Las cadenas de consulta de más de 100 KB deben coincidir exactamente para poder reutilizar los resultados.

  • Un resultado de una consulta se considera que ha vencido si supera la antigüedad máxima especificada o los 60 minutos predeterminados si no se ha especificado una antigüedad máxima. 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.

  • No se admiten los resultados de consultas administradas.

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.

Habilite 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
  1. 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.

  2. 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).

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

    Configurar la antigüedad máxima para reutilizar los resultados de las consultas.
  4. 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.