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éutiliser les 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
Note
La fonction de réutilisation des résultats des requêtes nécessite la version 3 du moteur Athena. Pour plus d’informations sur le changement de version du moteur Athena, voir Modifier les versions du moteur Athena.
Fonctions principales
-
La réutilisation des résultats des requêtes est une fonction optionnelle qui s'applique individuellement à chaque requête. Vous pouvez activer la réutilisation des résultats des requêtes pour chaque requête.
-
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. La valeur par défaut de est de 60 minutes.
-
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 le service Athena trouve des résultats de requête stockés correspondants, il ne réexécute pas la requête, mais pointe vers l'emplacement du résultat précédent ou récupère des données à partir de celui-ci.
-
Pour toute requête qui active l'option de réutilisation des résultats, Athena réutilise le dernier résultat de la requête enregistré dans le dossier du groupe de travail uniquement lorsque toutes les conditions suivantes sont réunies :
-
La chaîne de requête correspond exactement.
-
Le nom de la base de données et le nom du catalogue correspondent.
-
Le résultat précédent n'est pas plus ancien que l'âge maximum spécifié, ou pas plus ancien que 60 minutes si un âge maximum n'a pas été spécifié.
-
Athena ne réutilise qu'une exécution qui a exactement la même configuration de résultats que l'exécution actuelle.
-
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 de requête sur Amazon S3 peuvent réutiliser les résultats des requêtes. Cela signifie que, par exemple,, CTAS
INSERT INTO
MERGE
UNLOAD
, et les DDL requêtes ne sont 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,LIMIT
sansORDER BY
est non déterministe et n'est pas mis en cache, maisLIMIT
avecORDER BY
est déterministe et est mis en cache. -
La réutilisation des résultats des requêtes est prise en charge dans la console Athena, dans Athena et dans API le pilote. JDBC Actuellement, la prise en charge des ODBC pilotes pour la réutilisation des résultats de requête n'est disponible que pour Windows.
-
Pour utiliser la fonctionnalité de réutilisation des résultats de requête avecJDBC, la version minimale du pilote requise est 2.0.34.1000. PourODBC, la version minimale du pilote requise est 1.1.19.1002. Pour obtenir des informations sur le téléchargement du pilote, voir Connectez-vous à Amazon Athena avec et avec vos chauffeurs ODBC JDBC.
-
La réutilisation des résultats de requête n'est pas prise en charge pour les requêtes qui utilisent plusieurs catalogues de données.
-
La réutilisation des résultats de requête n'est pas prise en charge pour les requêtes qui incluent plus de 20 tables.
Comment réutiliser les résultats d'une requête 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.
![Activez Reuse query results (Réutiliser les résultats des requêtes) dans l'éditeur de requêtes Athena.](images/reusing-query-results-1.png)
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.
L'exemple suivant spécifie une durée de réutilisation maximale de deux jours.
-
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.