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.
Optimisation des tables Iceberg
Athena fournit plusieurs fonctionnalités d'optimisation pour améliorer les performances des requêtes sur les tables Apache Iceberg. À mesure que les données s'accumulent, les requêtes peuvent devenir moins efficaces en raison de l'augmentation de la charge de traitement des fichiers et du coût de calcul lié à l'application des suppressions au niveau des lignes stockées dans les fichiers de suppression Iceberg. Pour relever ces défis, Athena prend en charge les opérateurs manuels de compactage et d'aspiration afin d'optimiser la structure des tables. Athena utilise également les statistiques d'Iceberg pour permettre l'optimisation des requêtes basée sur les coûts et l'indexation des colonnes Parquet pour un élagage précis des données lors de l'exécution des requêtes. Ces fonctionnalités fonctionnent ensemble pour réduire le temps d'exécution des requêtes, minimiser l'analyse des données et réduire les coûts. Cette rubrique explique comment utiliser ces fonctionnalités d'optimisation pour maintenir des requêtes de haute performance sur vos tables Iceberg.
OPTIMIZE
L'action de compactage OPTIMIZE réécrit les fichiers de données dans une disposition plus optimisée en fonction de leur taille et du nombre de fichiers de suppression associés. Pour plus de détails sur la syntaxe et les propriétés des tables, voir OPTIMIZE.table REWRITE DATA
Exemple
L'exemple suivant fusionne les fichiers de suppression dans des fichiers de données et produit des fichiers proches de la taille de fichier ciblée où la valeur de category est c1.
OPTIMIZE iceberg_table REWRITE DATA USING BIN_PACK WHERE category = 'c1'
VACUUM
VACUUM exécute l'expiration d'instantané
Exemple
L'exemple suivant utilise une propriété de table pour configurer la table iceberg_table afin de retenir les données des trois derniers jours, puis utilise VACUUM pour faire expirer les anciens instantanés et supprimer les fichiers orphelins de la table.
ALTER TABLE iceberg_table SET TBLPROPERTIES ( 'vacuum_max_snapshot_age_seconds'='259200' ) VACUUM iceberg_table
Utiliser les statistiques des tables Iceberg
L'optimiseur basé sur les coûts d'Athena utilise les statistiques d'Iceberg pour produire des plans de requêtes optimaux. Lorsque des statistiques ont été générées pour vos tables Iceberg, Athena utilise automatiquement ces informations pour prendre des décisions intelligentes concernant l'ordre des jointures, les filtres et le comportement d'agrégation, ce qui améliore souvent les performances des requêtes et réduit les coûts.
Les statistiques Iceberg sont activées par défaut lorsque vous utilisez les tables S3. Pour les autres tables Iceberg, Athena utilise la use_iceberg_statistics propriété table pour déterminer s'il convient de tirer parti des statistiques pour une optimisation basée sur les coûts. Pour commencer, consultez la section Optimisation des performances des requêtes à l'aide des statistiques de colonne dans le Guide de AWS Glue l'utilisateur ou utilisez la console Athena pour générer des statistiques à la demande sur vos tables Iceberg.
Utiliser l'indexation des colonnes Parquet
L'indexation des colonnes Parquet permet à Athena d'effectuer un élagage des données plus précis lors de l'exécution des requêtes en exploitant les statistiques au niveau des min/max pages en plus des statistiques au niveau des groupes de lignes. Cela permet à Athena d'ignorer les pages inutiles au sein des groupes de lignes, ce qui réduit considérablement la quantité de données numérisées et améliore les performances des requêtes. Il fonctionne parfaitement pour les requêtes utilisant des prédicats de filtre sélectifs sur des colonnes triées, ce qui améliore à la fois le temps d'exécution et l'efficacité de l'analyse des données tout en réduisant la quantité de données qu'Athena doit lire sur Amazon S3.
Athena utilise les index de colonnes Parquet par défaut avec S3 Tables si des index de colonnes sont présents dans les fichiers Parquet sous-jacents. Pour les autres tables Iceberg, Athena utilise use_iceberg_parquet_column_index cette propriété pour déterminer s'il convient d'utiliser les index des colonnes du fichier Parquet. Définissez cette propriété de table à l'aide de la AWS Glue console ou de UpdateTable l'API.