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.
VACUUM
L'VACUUM
instruction effectue la maintenance des tables Apache Iceberg en expirant les instantanés
Note
VACUUM
est transactionnel et n'est pris en charge que pour les tables Apache Iceberg dans la version 3 du moteur Athena.
Cette VACUUM
déclaration optimise les tables Iceberg en réduisant la consommation de stockage. Pour plus d'informations sur l'utilisation de VACUUM
, consultez Optimisez les tables Iceberg. Notez que, dans la mesure VACUUM
où l'instruction API appelle Amazon S3, des frais s'appliquent pour les demandes associées adressées à Amazon S3.
Avertissement
Si vous exécutez une opération d'expiration des instantanés, vous ne pouvez plus parcourir le temps vers les instantanés expirés.
Résumé
Pour supprimer les fichiers de données qui ne sont plus nécessaires pour une table Iceberg, utilisez la syntaxe suivante.
VACUUM [database_name
.]target_table
-
VACUUM
s'attend à ce que les données Iceberg se trouvent dans un dossier Amazon S3 plutôt que dans un compartiment Amazon S3. Par exemple, si vos données Iceberg se trouvent às3://amzn-s3-demo-bucket
/au lieu des3://amzn-s3-demo-bucket/myicebergfolder/
, l'VACUUM
instruction échoue avec le message d'erreurGENERIC_ INTERNAL _ ERROR : Path missing in file system location :
.s3://amzn-s3-demo-bucket
-
VACUUM
Pour pouvoir supprimer des fichiers de données, votre rôle d'exécution des requêtes doit disposer d's3:DeleteObject
autorisations sur le compartiment dans lequel se trouvent vos tables, métadonnées, instantanés et fichiers de données Iceberg. Si l'autorisation n'est pas présente, laVACUUM
requête aboutira, mais les fichiers ne seront pas supprimés. -
Pour exécuter une
VACUUM
opération sur une table dont le nom commence par un trait de soulignement (par exemple,_mytable
), placez le nom de la table en backticks, comme dans l'exemple suivant. Si vous préfixez le nom de la table par un nom de base de données, ne le mettez pas entre crochets. Notez que les guillemets ne remplaceront pas les backticks.Ce comportement est propre à
VACUUM
. LesINSERT INTO
instructionsCREATE
and ne nécessitent pas de cocher la case arrière pour les noms de table commençant par un trait de soulignement.VACUUM `_mytable` VACUUM my_database.`_mytable`
Opérations effectuées
VACUUM
effectue les opérations suivantes :
-
Supprime les instantanés qui sont plus anciens que la période spécifiée par la propriété
vacuum_max_snapshot_age_seconds
de la table. Par défaut, cette propriété est définie sur 432 000 secondes (5 jours). -
Supprime les instantanés qui ne sont pas dans la période de rétention et qui dépassent le nombre spécifié par la propriété
vacuum_min_snapshots_to_keep
de la table. La valeur par défaut est 1.Vous pouvez spécifier ces propriétés de table dans votre instruction
CREATE TABLE
. Une fois la table créée, vous pouvez utiliser l'instruction ALTER TABLE SET TBLPROPERTIES pour la mettre à jour. -
Supprime tous les fichiers de métadonnées et de données qui sont inaccessibles à la suite de la suppression de l'instantané. Vous pouvez configurer le nombre d'anciens fichiers de métadonnées à conserver en définissant la propriété de table
vacuum_max_metadata_files_to_keep
. La valeur par défaut est 100. -
Supprime les fichiers orphelins qui sont plus anciens que le temps spécifié dans la propriété
vacuum_max_snapshot_age_seconds
de la table. Les fichiers orphelins sont des fichiers dans le répertoire de données de la table qui ne font pas partie de l'état de la table.
Pour plus d'informations sur la création et la gestion de tables Apache Iceberg dans Athena, voir Création de tables Iceberg et Gérer les tables Iceberg.