Mis consultas de Amazon Athena tardan mucho en ejecutarse y los tiempos de espera de las consultas son largos.
Resolución
Es posible que las consultas de Athena se pongan en cola temporalmente antes de ejecutarse. Es posible que las consultas tarden mucho en ejecutarse debido a un tiempo de espera elevado o a un tiempo de procesamiento del motor elevado.
Llame a la API GetQueryExecution para el ID de su consulta. Esta API devuelve información sobre una única consulta procesada. Puede ver esta información en el parámetro QueryExecutionStatistics de la respuesta de la API. También puede utilizar el editor de consultas de Athena para ver las estadísticas y los detalles de las consultas completadas.
Mayor tiempo de espera
Es posible que sus consultas tengan un tiempo de espera mayor debido a un elevado uso de recursos en el backend. El tiempo de espera en Athena depende de la asignación de recursos. Tras enviar las consultas a Athena, se les asignan recursos y se procesan según los siguientes criterios:
- Carga total del servicio
- Número de solicitudes nuevas
Si sus consultas tienen un tiempo de espera elevado, tome las siguientes medidas para mejorar el rendimiento de las consultas:
- Distribuya las consultas a lo largo de un periodo de tiempo. Si envía consultas en lotes, envíe lotes pequeños con más frecuencia en lugar de lotes grandes con menos frecuencia. Esto puede reducir el tiempo que una consulta permanece en el estado EN COLA.
- Ejecute una combinación de consultas simples y complejas en lugar de un conjunto de consultas complejas al mismo tiempo. Envíe primero las consultas simples y, a continuación, las consultas complejas. Como las consultas simples se procesan con rapidez, puede asignar recursos a las consultas complejas sin incurrir en tiempos de espera largos.
- Para las consultas programadas, evite los periodos de tiempo al principio de la hora y 30 minutos después de la hora. Esto se debe a que la mayoría de los scripts y trabajos cron automatizados se ejecutan en esos momentos. La carga del servicio suele ser alta en estos periodos y puede provocar un aumento de los tiempos de espera.
- Si su caso de uso lo permite, ejecute las consultas en varias regiones de AWS para distribuir la carga y ayudar a adquirir más recursos de backend.
Importante: Puede incurrir en costes interregionales de Amazon Simple Storage Service (Amazon S3).
Mayor tiempo de planificación
Si fragmenta la tabla en demasiadas particiones, es posible que el tiempo de planificación aumente. Las tablas con cientos o miles de particiones pueden ralentizar el procesamiento de las consultas. Para mejorar el rendimiento de las consultas, tome cualquiera de las siguientes medidas:
- Reducir el número de particiones.
- Hacer consultas en una partición cada vez y combinar los resultados.
- Utilizar la proyección de particiones para acelerar el procesamiento de consultas de tablas con muchas particiones y automatizar la administración de particiones.
Mayor tiempo de procesamiento
Si las consultas tienen un tiempo de procesamiento del motor más elevado, tome las siguientes medidas para mejorar el rendimiento de las consultas:
- Fragmente las tablas en particiones para restringir la cantidad de datos que escanea cada consulta. Para obtener más información, consulte Particiones de datos en Athena.
- Si el archivo de Amazon S3 que consulta es pequeño (por ejemplo, menos de 128 MB), es posible que el tiempo de procesamiento de la consulta sea mayor. El aumento de tiempo se debe al aumento de las tareas, como cuando abre el archivo S3, enumera los directorios y configura la transferencia de datos. Utilice la herramienta S3DistCp en Amazon EMR para combinar archivos de S3 pequeños en objetos más grandes. Los objetos más grandes requieren menos solicitudes de Amazon S3 y reduce el tiempo de procesamiento de las consultas.
- Lleve a cabo otras optimizaciones del almacenamiento y las consultas.
Nota: Puede enviar varias consultas a Athena al mismo tiempo según las cuotas predeterminadas relacionadas con la consulta en su región. Athena asigna los recursos en función de la carga total del servicio y del número de solicitudes nuevas para procesar las consultas. Por lo tanto, es posible que no todas las consultas enviadas se ejecuten simultáneamente.
Información relacionada
Ajuste del rendimiento en Athena