Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Réutilisation des résultats des requêtes dans Athena
Lorsque vous réexécutez une requête dans Athena, vous pouvez choisir de réutiliser le dernier résultat stocké de la requête. Cette option peut augmenter les performances et réduire les coûts en termes de nombre d'octets analysés. La réutilisation des résultats des requêtes est utile si, par exemple, vous savez que les résultats ne changeront pas dans un délai donné. Vous pouvez spécifier un âge maximum pour la réutilisation des résultats des requêtes. Athena utilise le résultat stocké tant qu'il n'est pas plus ancien que l'âge que vous avez spécifié. Pour plus d'informations, consultez Réduction des coûts et amélioration des performances des requêtes avec Amazon Athena
Fonctions principales
Lorsque vous activez la réutilisation des résultats d'une requête, Athena recherche une exécution précédente de la requête au sein du même groupe de travail. Si Athena trouve une correspondance, elle contourne l'exécution et renvoie le résultat de la requête de l'exécution correspondante précédente. Vous pouvez activer la réutilisation des résultats des requêtes pour chaque requête.
Athena réutilise le résultat de la dernière requête lorsque toutes les conditions suivantes sont remplies :
-
Les chaînes de requête correspondent selon les indications d'Athéna.
-
Les noms de base de données et de catalogue correspondent.
-
Le résultat précédent n'a pas expiré.
-
La configuration des résultats de la requête correspond à la configuration des résultats de la requête de l'exécution précédente.
-
Vous avez accès à toutes les tables référencées dans la requête.
-
Vous avez accès à l'emplacement du fichier S3 où le résultat précédent est stocké.
Si l'une de ces conditions n'est pas remplie, Athena exécute la requête sans utiliser les résultats mis en cache.
Considérations et restrictions
Lorsque vous utilisez la fonction de réutilisation des résultats des requêtes, gardez à l'esprit les points suivants :
-
Athena réutilise les résultats des requêtes uniquement au sein du même groupe de travail.
-
La fonctionnalité de réutilisation des résultats des requêtes respecte les configurations des groupes de travail. Si vous remplacez la configuration des résultats d'une requête, la fonctionnalité est désactivée.
-
Seules les requêtes qui produisent des ensembles de résultats sur Amazon S3 sont prises en charge. Les déclarations autres que
SELECTet neEXECUTEsont pas prises en charge. -
Les tables Apache Hive, Apache Hudi, Apache Iceberg et Linux Foundation Delta Lake enregistrées auprès AWS Glue de ce site sont prises en charge. Les métastores Hive externes ne sont pas pris en charge.
-
Les requêtes qui font référence à des catalogues fédérés ou à un métastore Hive externe ne sont pas prises en charge.
-
La réutilisation des résultats des requêtes n'est pas prise en charge pour les tables régies par Lake Formation.
-
La réutilisation des résultats de requête n'est pas prise en charge lorsque l'emplacement Amazon S3 de la source de table est enregistré en tant qu'emplacement de données dans Lake Formation.
-
Les tableaux avec des autorisations de lignes et de colonnes ne sont pas pris en charge.
-
Les tables dotées d'un contrôle d'accès précis (par exemple, le filtrage des colonnes ou des lignes) ne sont pas prises en charge.
-
Toute requête faisant référence à une table non prise en charge n'est pas éligible à la réutilisation des résultats de la requête.
-
Athena exige que vous disposiez d'autorisations de lecture sur Amazon S3 pour que le fichier de sortie généré précédemment puisse être réutilisé.
-
La fonctionnalité de réutilisation des résultats des requêtes suppose que le contenu du résultat précédent n'a pas été modifié. Athena ne vérifie pas l'intégrité d'un résultat précédent avant de l'utiliser.
-
Si les résultats de la requête de l'exécution précédente ont été supprimés ou déplacés vers un autre emplacement dans Amazon S3, l'exécution ultérieure de la même requête ne réutilisera pas les résultats de la requête.
-
Des résultats potentiellement périmés peuvent être renvoyés. Athena ne vérifie pas les modifications apportées aux données sources tant que l'âge maximal de réutilisation que vous spécifiez n'est pas atteint.
-
Si plusieurs résultats sont disponibles pour la réutilisation, Athena utilise le dernier résultat.
-
Les requêtes qui utilisent des opérateurs ou des fonctions non déterministes comme
rand()oushuffle()n'utilisent pas les résultats mis en cache. Par exemple,LIMITsansORDER BYest non déterministe et n'est pas mis en cache, maisLIMITavecORDER BYest déterministe et est mis en cache. -
Pour utiliser la fonction de réutilisation des résultats des requêtes avec JDBC, la version minimale du pilote requise est 2.0.34.1000. Pour ODBC, la version minimale requise du pilote est 1.1.19.1002. Pour obtenir des informations sur le téléchargement du pilote, voir Connexion à Amazon Athena avec les pilotes ODBC et JDBC.
-
La réutilisation des résultats des requêtes n’est pas prise en charge pour les requêtes utilisant plusieurs catalogues de données.
-
La réutilisation des résultats des requêtes n’est pas prise en charge pour les requêtes contenant plus de 20 tables.
-
Pour les chaînes de requête d'une taille inférieure à 100 Ko, les différences entre les commentaires et les espaces blancs sont ignorées
INNER JOINetJOINsont traitées comme des équivalences aux fins de réutilisation des résultats. Les chaînes de requête supérieures à 100 Ko doivent correspondre exactement pour que les résultats puissent être réutilisés. -
Le résultat d'une requête est considéré comme expiré s'il est supérieur à l'âge maximum spécifié, ou supérieur à l'âge par défaut de 60 minutes si aucun âge maximum n'a été spécifié. L'âge maximum pour la réutilisation des résultats des requêtes peut être spécifié en minutes, heures ou jours. L'âge maximum pouvant être spécifié est l'équivalent de 7 jours, quelle que soit l'unité de temps utilisée.
-
Les résultats des requêtes gérées ne sont pas pris en charge.
Comment réutiliser les résultats des requêtes dans la console Athena
Pour utiliser cette fonctionnalité, activez l'option Reuse query results (Réutiliser les résultats des requêtes) dans l'éditeur de requêtes Athena.
Configurer la fonctionnalité de réutilisation des résultats des requêtes
-
Dans l'éditeur de requêtes Athena, sous l'option Reuse query results (Réutiliser les résultats des requêtes), cliquez sur l'icône de modification située à côté de up to 60 minutes ago (jusqu'à 60 minutes auparavant).
-
Dans la boîte de dialogue Edit reuse time (Modifier le temps de réutilisation), dans la zone de droite, choisissez une unité de temps (minutes, heures ou jours).
-
Dans la zone de gauche, saisissez ou choisissez le nombre d'unités de temps que vous souhaitez spécifier. La durée maximale que vous pouvez saisir est l'équivalent de sept jours, quelle que soit l'unité de temps choisie.
-
Choisissez Confirmer.
Une bannière confirme votre modification de configuration et l'option Reuse query results (Réutiliser les résultats des requêtes) affiche votre nouveau paramètre.