Lorsque j'exécute une requête dans Amazon Athena, elle échoue et le message d'erreur « Query timeout » s'affiche.
Résolution
Les requêtes Athena échouent avec des erreurs de délai d’attente lorsqu'elles dépassent le quota de délai d’attente des requêtes DML. Pour résoudre l'erreur, utilisez les solutions suivantes.
Réduire ou augmenter le temps d'exécution des requêtes depuis Athena
Suivez les instructions de la section Comment résoudre les erreurs « query timeout » lorsque j'importe des données d'Athena vers Quick Sight SPICE ?
Configurer les notifications en cas d’expiration des requêtes Athena
Pour recevoir une notification pour les requêtes qui arrivent à expiration et qui échouent, utilisez une règle d'événement Amazon CloudWatch pour capturer l'événement. Puis, utilisez Amazon Simple Notification Service (Amazon SNS) pour configurer les notifications.
Interroger les journaux d'accès Amazon S3
Si vous exécutez des requêtes pour les journaux d'accès à Amazon Simple Storage Service (Amazon S3) et que le délai de requête expire, utilisez une tâche ETL AWS Glue pour partitionner vos données Amazon S3. Puis, exécutez les requêtes Athena sur des partitions limitées. Pour obtenir des instructions, consultez la section Comment utiliser un journal d'accès Amazon S3 partitionné pour empêcher l'expiration d'une requête Athena ?
Interroger les données CloudTrail
Si vous utilisez Athena pour interroger les données AWS CloudTrail, l'exécution des requêtes peut être longue ou expirer. En effet, la taille des journaux CloudTrail augmente au fil du temps, même si vous partitionnez la table CloudTrail afin de réduire le temps d'exécution des requêtes.
Utilisez la projection de partition pour créer manuellement une table CloudTrail. Cela permet à Athena de calculer de façon dynamique la valeur des tables CloudTrail et de réduire le temps d'exécution des requêtes. La projection de partition calcule les valeurs et les emplacements de partition à partir de la configuration, ce qui élimine la gestion manuelle des partitions.
Utiliser des requêtes CTAS
Pour améliorer les performances des requêtes, utilisez une requête CREATE TABLE AS SELECT (CTAS) pour créer une nouvelle table dans Athena à partir des résultats d'une instruction SELECT d'une autre requête. CTAS crée des tables à partir des résultats des requêtes en une seule étape pour faciliter l'utilisation des jeux de données brutes. Les requêtes CTAS améliorent également les performances des requêtes et réduisent les coûts des requêtes. Pour des exemples, consultez la section Exemples de requêtes CTAS.
Utiliser les instructions EXPLAIN et EXPLAIN ANALYZE
Utilisez EXPLAIN et EXPLAIN ANALYZE dans Athena pour les requêtes complexes. L'instruction EXPLAIN affine les instructions SQL et vérifie l'élagage des partitions afin d'optimiser les requêtes. Il s'agit d'une bonne pratique qui vérifie les considérations et les limites des instructions EXPLAIN et EXPLAIN ANALYZE.
Pour plus d'informations, consultez les exemples EXPLAIN et les exemples EXPLAIN ANALYZE.
Informations connexes
10 conseils pour optimiser les performances d'Amazon Athena
Comment puis-je utiliser les résultats d'une requête Amazon Athena dans une autre requête ?