Optimisation des tables Iceberg - Amazon Athena

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

À mesure que les données s'accumulent dans une table Iceberg, les requêtes deviennent progressivement moins efficaces en raison du temps de traitement accru requis pour ouvrir les fichiers. Des coûts de calcul supplémentaires sont encourus si la table contient des fichiers de suppression. Dans Iceberg, les fichiers de suppression stockent les suppressions au niveau des lignes, et le moteur doit appliquer les lignes supprimées aux résultats de la requête.

Afin d'optimiser les performances des requêtes sur les tables Iceberg, Athena prend en charge le compactage manuel en tant que commande de maintenance de table. Les compactions optimisent la disposition structurelle de la table sans en modifier le contenu.

OPTIMIZE

L'action de compactage OPTIMIZE table REWRITE DATA 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.

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é et la suppression des fichiers orphelins. Ces actions réduisent la taille des métadonnées et suppriment les fichiers qui ne figurent pas dans l'état actuel de la table et qui sont également plus anciens que la période de rétention spécifiée pour la table. Pour plus de détails sur la syntaxe, voir VACUUM.

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