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. Au fur et à mesure que les données s'accumulent, les requêtes peuvent devenir moins efficaces en raison de l'augmentation des frais de traitement des fichiers et des coûts de calcul liés à l'application des suppressions au niveau des lignes stockées dans les fichiers de suppression Iceberg. Pour relever ces défis, Athena aide les opérateurs de compactage manuel et d'aspiration à optimiser la structure des tables. Athena utilise également les statistiques Iceberg pour permettre une 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 performantes 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 du tableau 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, améliorant ainsi souvent les performances des requêtes et réduisant les coûts.
Les statistiques Iceberg sont activées par défaut lorsque vous utilisez S3 Tables. Pour les autres tables Iceberg, Athena utilise la propriété table use_iceberg_statistics 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 des colonnes 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 plus précis des données lors de l'exécution des requêtes en exploitant les statistiques au niveau des pages en plus des min/max statistiques au niveau des groupes de lignes. Cela permet à Athena d'ignorer les pages inutiles dans les groupes de lignes, ce qui réduit considérablement la quantité de données scannées et améliore les performances des requêtes. Il fonctionne mieux pour les requêtes comportant des prédicats de filtre sélectif sur des colonnes triées, améliorant à 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 les tables S3 si des index de colonnes sont présents dans les fichiers Parquet sous-jacents. Pour les autres tables Iceberg, Athena utilise la use_iceberg_parquet_column_index propriété pour déterminer si les index de colonnes du fichier Parquet doivent être utilisés. Définissez cette propriété de table à l'aide de la AWS Glue console ou de UpdateTable l'API.