J'ai exécuté une requête SELECT sur ma table Amazon Athena pour les journaux AWS CloudTrail. Cependant, la requête s'exécute lentement, n'a pas renvoyé de résultats ou a échoué avec une erreur de délai d’attente.
Résolution
Suivez les étapes de résolution des problèmes suivantes en fonction de votre cas d'utilisation.
La requête ne renvoie aucun résultat
Chemin d’emplacement Amazon S3 incorrect
Vérifiez l'emplacement de la table Amazon Simple Storage Service (Amazon S3) pour vos journaux CloudTrail. Si le chemin LOCATION d’entrée dans votre table est incorrect, Athena ne renvoie aucun enregistrement.
Partitions non chargées dans la table
Si vous avez utilisé l'instruction CREATE TABLE de partitionnement manuel pour créer votre table, vérifiez que vous avez chargé des partitions dans la table Athena. Si vous ne chargez pas de partitions dans la table, les requêtes Athena ne renvoient aucun résultat.
Utilisez une instruction SHOW PARTITIONS pour afficher les partitions que vous avez déjà chargées dans la table. Utilisez la commande ALTER TABLE ADD PARTITION pour charger les partitions requises afin que votre requête renvoie des résultats.
Partitions incorrectement définies
Si vous avez utilisé l'instruction CREATE TABLE de partitionnement manuel pour créer votre table, vérifiez la plage de propriétés d'horodatage. Assurez-vous que la propriété projection.timestamp.range correspond aux partitions se trouvant à l'emplacement de votre compartiment Amazon S3.
Assurez-vous que la requête SELECT ne filtre pas les données sur des valeurs situées au-delà de la plage que vous avez définie dans la propriété projection.timestamp.range.
Classes de stockage
Athena ne prend pas en charge les requêtes de données pour les classes de stockage S3 Glacier Flexible Retrieval ou S3 Glacier Deep Archive, et les objets sont ignorés.
Vérifiez si les journaux CloudTrail se trouvent dans des classes de stockage S3 non prises en charge. Restaurez les objets archivés Amazon S3 que vous souhaitez interroger. Puis, interrogez les objets Amazon S3 restaurés.
La requête prend du temps à s'exécuter ou échoue avec une erreur de délai d’attente
Table non partitionnée
Si vous avez utilisé la console CloudTrail pour créer une table Athena pour les journaux CloudTrail, une table non partitionnée est créée.
Les requêtes SELECT analysent tous les fichiers journaux de votre compartiment Amazon S3 contenant des tables non partitionnées. Si le délai d’expiration des requêtes DML est dépassé, les requêtes peuvent s'exécuter lentement ou expirer.
Pour optimiser les performances des requêtes, il est recommandé de créer une table partitionnée. Pour réduire le temps de requête, spécifiez une colonne de partition dans la clause WHERE afin qu'Athena analyse uniquement les données des partitions correspondantes.
La requête de table partitionnée n'utilise pas la colonne de partition pour filtrer les données
Si la requête SELECT n'utilise pas de colonne de partition dans la clause WHERE, Athena analyse tous les fichiers journaux du compartiment Amazon S3.
L'exemple de requête suivant comporte une table CloudTrail de projection de partition qui s'exécute lentement car elle analyse tous les journaux :
SELECT useridentity, sourceipaddress, eventtime
FROM cloudtrail_table
WHERE eventname = 'RunInstances'
AND eventtime >= '2023-10-30T00:00:00Z'
AND eventtime < '2023-10-30T00:04:00Z';
Pour réduire le temps de requête, spécifiez une colonne de partition dans la clause WHERE afin qu'Athena analyse uniquement les données des partitions correspondantes.
L'exemple de requête suivant comporte une clause WHERE sur l'horodatage de la colonne de partition qui analyse uniquement les journaux de la partition 2023/10/30 :
SELECT useridentity, sourceipaddress, eventtime
FROM cloudtrail_table
WHERE eventname = 'RunInstances'
AND eventtime >= '2023-10-30T00:00:00Z'
AND eventtime < '2023-10-30T00:04:00Z'
AND timestamp >= '2023/10/30'
AND timestamp < '2023/10/31'
Pour plus d'informations, consultez la section Comment puis-je résoudre les problèmes de délai d'attente lorsque j'interroge des données CloudTrail à l'aide d'Athena ?
Informations connexes
Comment puis-je créer automatiquement des tables dans Amazon Athena pour effectuer des recherches dans les journaux AWS CloudTrail ?
Interrogation des journaux AWS CloudTrail