Pourquoi l’exécution de mes requêtes Amazon Athena est-elle si lente ?

Lecture de 4 minute(s)
0

L'exécution de mes requêtes Amazon Athena est lente et les délais de file d'attente des requêtes sont élevés.

Résolution

Il est possible que vos requêtes Athena soient temporairement placées dans une file d'attente avant d'être exécutées. L'exécution des requêtes peut prendre beaucoup de temps en raison d'un long délai de file d'attente ou d'un temps de traitement élevé par le moteur.

Appelez l'API GetQueryExecution pour l'ID de votre requête. Cette API renvoie des informations sur une seule requête traitée. Vous pouvez consulter ces informations dans le paramètre QueryExecutionStatistics de la réponse de l'API. Vous pouvez également utiliser l'éditeur de requêtes Athena pour consulter les statistiques et les détails de requêtes déjà exécutées.

File d'attente longue

Vos requêtes peuvent se trouver dans une file d'attente longue en raison de l'utilisation élevée de ressources dorsales. La longueur de la file d'attente dans Athena dépend de l'allocation des ressources. Une fois vos requêtes envoyées à Athena, des ressources leur sont affectées. Vos requêtes sont alors traitées en fonction de :

  • La charge de service globale
  • Le nombre de nouvelles demandes

Si vos requêtes se trouvent dans une file d'attente longue, vous pouvez prendre les mesures suivantes pour améliorer leurs performances :

  • Répartissez vos requêtes dans le temps. Si vous envoyez des requêtes par lots, envoyez de lots plus petits plus fréquemment au lieu d’envoyer des lots plus volumineux moins fréquemment. Vous pourrez ainsi réduire la durée pendant laquelle une requête reste à l'état EN FILE D'ATTENTE.
  • Exécutez une combinaison de requêtes simples et complexes au lieu d'envoyer un ensemble simultané de requêtes complexes. Soumettez d'abord des requêtes simples, puis des requêtes complexes. Comme les requêtes simples sont traitées rapidement, vous pouvez ainsi allouer des ressources aux requêtes complexes sans alourdir les files d'attente.
  • Évitez de programmer les requêtes planifiées en début d'heure et 30 minutes après l'heure. La plupart des scripts automatisés et des tâches cron s'exécutent en effet à ces heures. La charge de service est généralement élevée pendant ces périodes, ce qui peut entraîner des délais au niveau de la file d'attente.
  • Si votre cas d'utilisation le permet, exécutez vos requêtes dans plusieurs régions AWS pour répartir la charge et vous aider à profiter de davantage de ressources dorsales.

Important : des frais interrégionaux liés à Amazon Simple Storage Service (Amazon S3) peuvent vous être facturés.

Durée de plan longue

Lorsqu’une table contient un nombre de partitions excessif, cela peut augmenter la durée du plan. Les tables comportant des centaines ou des milliers de partitions peuvent ralentir le traitement des requêtes. Pour améliorer les performances des requêtes, prenez l’une des mesures suivantes :

  • Réduisez le nombre de partitions.
  • Interrogez une partition à la fois et associez les résultats.
  • Utilisez la projection de partition pour accélérer le traitement des requêtes des tables fortement partitionnées et automatiser la gestion des partitions.

Temps de traitement long

Si le temps de traitement de vos requêtes par le moteur est trop long, prenez les mesures suivantes pour améliorer les performances des requêtes :

  • Partitionnez vos tables pour limiter la quantité de données analysée par chaque requête. Pour en savoir plus, consultez la page Partitionnement des données dans Athena.
  • Si le fichier Amazon S3 que vous interrogez est de petite taille, par exemple moins de 128 Mo, le temps de traitement de la requête peut être plus long. L'augmentation de ce délai est due au nombre accru de tâches, telles que l'ouverture du fichier S3, la liste des répertoires et la configuration du transfert de données. Utilisez l'outil S3DistCp d'Amazon EMR pour combiner des fichiers S3 plus petits en objets plus volumineux. Les objets plus volumineux nécessitent moins de requêtes Amazon S3, ce qui réduit le délai de traitement des requêtes.
  • Procédez à d'autres optimisations du stockage et des requêtes.

Remarque : vous pouvez envoyer plusieurs requêtes à Athena en même temps, selon les quotas par défaut liés aux requêtes de votre région. Athena attribue des ressources en fonction de la charge de service globale et du nombre de nouvelles demandes de traitement de requêtes. Par conséquent, il est possible que toutes les requêtes que vous avez soumises ne soient pas exécutées simultanément.

Informations connexes

Réglage des performances dans Athena

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an