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.
Vous pouvez utiliser la fonctionnalité d'optimisation basée sur les coûts (CBO) d'Athena SQL pour optimiser vos requêtes. Vous pouvez éventuellement demander à Athena de recueillir des statistiques au niveau des tables ou des colonnes pour l'une de vos tables dans AWS Glue. Si toutes les tables de votre requête contiennent des statistiques, Athena utilise ces statistiques pour créer un plan d'exécution qu'elle considère comme le plus performant. L'optimiseur de requêtes calcule des plans alternatifs sur la base d'un modèle statistique, puis sélectionne celui qui sera probablement le plus rapide pour exécuter la requête.
Les statistiques sur AWS Glue les tables sont collectées et stockées dans le AWS Glue Data Catalog et mises à la disposition d'Athena pour améliorer la planification et l'exécution des requêtes. Il s'agit de statistiques au niveau des colonnes, telles que le nombre de valeurs distinctes, le nombre de valeurs nulles, maximales et minimales pour des types de fichiers tels que Parquet, ORC, JSON, ION, CSV et XML. Amazon Athena utilise ces statistiques pour optimiser les requêtes en appliquant les filtres les plus restrictifs le plus tôt possible lors du traitement des requêtes. Ce filtrage limite l'utilisation de la mémoire et le nombre d'enregistrements qui doivent être lus pour fournir les résultats de la requête.
En conjonction avec le CBO, Athena utilise une fonctionnalité appelée optimiseur basé sur des règles (RBO). Le RBO applique mécaniquement des règles censées améliorer les performances des requêtes. Le RBO est généralement bénéfique, car ses transformations visent à simplifier le plan de requêtes. Cependant, étant donné que RBO n'effectue pas de calculs de coûts ni de comparaisons de plans, il lui est difficile de créer un plan optimal à partir de requêtes plus complexes.
C'est pourquoi Athena utilise à la fois le RBO et le CBO pour optimiser vos requêtes. Après avoir identifié les possibilités d'améliorer l'exécution des requêtes, Athena crée un plan optimal. Pour en savoir plus sur les détails du plan d'exécution, veuillez consulter Afficher les plans d'exécution pour les requêtes SQL. Pour une discussion détaillée du fonctionnement du CBO, consultez l'article Accélérer les requêtes avec l'optimiseur basé sur les coûts d'Amazon Athena
Pour générer des statistiques pour les tables du AWS Glue catalogue, vous pouvez utiliser la console Athena, la AWS Glue console ou. AWS Glue APIs Athena étant intégrée à AWS Glue Catalog, vous bénéficiez automatiquement des améliorations de performances correspondantes lorsque vous exécutez des requêtes depuis Amazon Athena.
Considérations et restrictions
-
Types de tables : actuellement, la fonctionnalité CBO d'Athena ne prend en charge que les tables Hive qui se trouvent dans l' AWS Glue Data Catalog.
-
Athena pour Spark : la fonctionnalité CBO n'est pas disponible dans Athena pour Spark.
-
Tarification : pour obtenir des informations sur les prix, consultez la page de tarification d'AWS Glue
.
Générer des statistiques de table à l'aide de la console Athena
Cette section explique comment utiliser la console Athena pour générer des statistiques au niveau des tables ou des colonnes pour une table dans AWS Glue. Pour plus d'informations sur l'utilisation AWS Glue pour générer des statistiques de table, consultez la section Utilisation des statistiques de colonnes dans le Guide du AWS Glue développeur.
Pour générer des statistiques sur les tables à l'aide de la console Athena
Ouvrez la console à l'adresse https://console.aws.amazon.com/athena/
. -
Dans la liste des Tables de l'éditeur de requêtes Athena, choisissez les trois points verticaux pour le tableau de votre choix, puis sélectionnez Générer des statistiques.
-
Dans la boîte de dialogue Générer des statistiques, choisissez Toutes les colonnes pour générer des statistiques pour toutes les colonnes de la table, ou sélectionnez Colonnes sélectionnées pour sélectionner des colonnes spécifiques. La valeur par défaut est Toutes les colonnes.
-
Pour le rôle de AWS Glue service, créez ou sélectionnez un rôle de service existant AWS Glue pour autoriser la génération de statistiques. La fonction du service AWS Glue nécessite également des autorisations
S3:GetObject
d'accès au compartiment Amazon S3 qui contient les données de la table. -
Choisissez Générer des statistiques. Une bannière de génération de statistiques pour les
table_name
notifications affiche le statut de la tâche. -
Pour afficher les détails dans la AWS Glue console, choisissez View in Glue.
Pour plus d'informations sur l'affichage des statistiques dans la AWS Glue console, consultez la section Affichage des statistiques des colonnes dans le Guide du AWS Glue développeur.
-
Une fois les statistiques générées, les tables et les colonnes contenant des statistiques affichent le mot Statistiques entre parenthèses, comme dans l'image suivante.
Désormais, lorsque vous exécutez vos requêtes, Athena effectue une optimisation basée sur les coûts sur les tables et les colonnes pour lesquelles les statistiques ont été générées.
Ressources supplémentaires
Pour plus d'informations, consultez la ressource suivante.