Maintenance des tables
S3 Tables propose des opérations de maintenance pour améliorer la gestion et les performances de chaque table. Les options suivantes sont activées par défaut pour toutes les tables du compartiment de table. Vous pouvez modifier ou désactiver ces options en spécifiant des fichiers de configuration de maintenance pour votre table S3.
La modification de cette configuration nécessite les autorisations s3tables:GetTableMaintenanceConfiguration et s3tables:PutTableMaintenanceConfiguration.
Note
Vous pouvez suivre les opérations de maintenance automatique de S3 Tables sur vos tables par le biais des journaux CloudTrail. Pour plus d’informations, consultez Événements de gestion CloudTrail pour la maintenance de S3 Tables .
Compactage
Le compactage est configuré au niveau de la table et combine plusieurs petits objets en un plus petit nombre d’objets plus grands afin d’améliorer les performances des requêtes Apache Iceberg. Lorsque vous combinez des objets, le compactage applique également les effets des suppressions au niveau des lignes dans votre table.
Le compactage est activé par défaut pour toutes les tables, avec une taille de fichier cible par défaut de 512 Mo ou une valeur personnalisée que vous spécifiez, comprise entre 64 Mo et 512 Mo. Les fichiers compactés sont écrits sous la forme de l’instantané le plus récent de votre table.
Note
Le compactage est pris en charge sur les types de fichiers Apache Parquet, Avro et ORC.
Stratégies de compactage
Vous pouvez choisir parmi plusieurs stratégies de compactage qui peuvent améliorer encore les performances des requêtes en fonction de vos modèles de requêtes et de l’ordre de tri des tables.
S3 Tables prend désormais en charge de nouvelles stratégies de compactage pour les tables :
-
Auto (par défaut)
-
Amazon S3 sélectionne la meilleure stratégie de compactage en fonction de l’ordre de tri de votre table. Il s’agit de la stratégie de compactage par défaut pour toutes les tables.
-
Pour les tables dont l’ordre de tri est défini dans leurs métadonnées,
autoapplique automatiquement le compactagesort. -
Pour les tables sans ordre de tri,
autoutilise par défaut le compactagebinpack.
-
-
Binpack
-
Combine de petits fichiers en fichiers plus volumineux, en ciblant généralement des tailles supérieures à 100 Mo, tout en appliquant les suppressions en attente. Il s’agit de la stratégie de compactage par défaut pour les tables non triées.
-
-
Tri
-
Organise les données en fonction de colonnes spécifiées qui sont automatiquement triées hiérarchiquement lors du compactage, améliorant ainsi les performances des requêtes pour les opérations filtrées. Cette stratégie est recommandée lorsque vos requêtes filtrent fréquemment sur des colonnes spécifiques. Lorsque vous utilisez cette stratégie, S3 Tables applique automatiquement un tri hiérarchique aux colonnes lorsque un
sort_orderest défini dans les propriétés de la table.
-
-
Ordre Z
-
Optimise l’organisation des données en fusionnant plusieurs attributs en une seule valeur scalaire qui peut être utilisée pour le tri, ce qui permet d’effectuer des requêtes efficaces sur plusieurs dimensions. Cette stratégie est recommandée lorsque vous devez interroger des données simultanément sur plusieurs dimensions. Cette stratégie exige que vous définissiez un ordre de tri dans les propriétés de votre table Iceberg à l’aide de la propriété de table
sort_order.
-
Le compactage entraîne des coûts supplémentaires. Les stratégies de compactage z-order et sort peuvent entraîner un coût plus élevé que binpack. Pour plus d’informations, consultez les informations de tarification dans Tarification Amazon S3
Exemples de compactage
Les exemples suivants illustrent les configurations de compactage de table.
- Pour configurer la taille du fichier cible de compactage à l’aide de l’AWS CLI
-
La taille minimale du fichier de compactage cible est de 64 Mo ; la taille maximale est de 512 Mo.
L’exemple suivant modifie la taille du fichier cible en la définissant sur 256 Mo à l’aide de l’API
PutTableMaintenanceConfiguration.aws s3tables put-table-maintenance-configuration \ --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-bucket1\ --type icebergCompaction \ --namespacemynamespace\ --nametesttable\ --value='{"status":"enabled","settings":{"icebergCompaction":{"targetFileSizeMB":256}}}'Pour plus d’informations, consultez put-table-maintenance-configuration
dans la Référence des commandes de l’AWS CLI. - Pour configurer la stratégie de compactage à l’aide de l’AWS CLI
-
L’exemple suivant modifie la stratégie de compactage en
sorten utilisant l’APIPutTableMaintenanceConfiguration. Lorsque vous définissez le compactage, vous pouvez choisir l’une des stratégies de compactage suivantes :auto,binpack,sortouz-orderNote
Pour définir la stratégie de compactage sur
sortouz-order, vous devez respecter les prérequis suivants :Ordre de tri défini dans les propriétés de votre table Iceberg.
Autorisation
s3tables:GetTableData.
aws s3tables put-table-maintenance-configuration \ --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket \ --type icebergCompaction \ --namespacemynamespace\ --nametesttable\ --value='{"status":"enabled","settings":{"icebergCompaction":{"strategy":"sort"}}}'Pour plus d’informations, consultez put-table-maintenance-configuration
dans la Référence des commandes de l’AWS CLI. - Pour désactiver le compactage à l’aide de l’AWS CLI
-
L’exemple suivant permet de désactiver le compactage à l’aide de l’API
PutTableMaintenanceConfiguration.aws s3tables put-table-maintenance-configuration \ --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket \ --type icebergCompaction \ --namespacemynamespace\ --nametesttable\ --value='{"status":"disabled","settings":{"icebergCompaction":{"targetFileSizeMB":256}}}'Pour plus d’informations, consultez put-table-maintenance-configuration
dans la Référence des commandes de l’AWS CLI.
Gestion des instantanés
La gestion des instantanés détermine le nombre d’instantanés actifs pour votre table. Ceci est basé sur les paramètres MinimumSnapshots (1 par défaut) et MaximumSnapshotAge (120 heures par défaut). La gestion des instantanés expire et supprime les instantanés de table en fonction de ces configurations.
Lorsqu’un instantané expire, Amazon S3 marque tous les objets référencés uniquement par cet instantané comme non actuels. Ces objets non actuels sont supprimés après le nombre de jours spécifié par la propriété NoncurrentDays dans votre politique de suppression des fichiers non référencés.
Note
Les suppressions des objets non actuels sont permanentes et il n’est pas possible de récupérer ces objets.
Pour consulter ou récupérer des objets marqués comme non actuels, vous devez contacter AWS Support. Pour plus d’informations sur comment contacter AWS Support, consultez Contacter AWS
La gestion des instantanés détermine les objets à supprimer de votre table en se référant uniquement à cette table. Aucune référence faite à ces objets en dehors de la table n’empêche la gestion des instantanés de supprimer un objet.
Note
La gestion des instantanés ne prend pas en charge les valeurs de conservation que vous configurez en tant que propriétés de table Iceberg dans le fichier metadata.json ou via une commande SQL ALTER TABLE SET TBLPROPERTIES, y compris la conservation basée sur les branches ou les balises. La gestion des instantanés est désactivée lorsque vous configurez une politique de conservation basée sur les branches ou les balises, ou lorsque vous configurez une politique de conservation sur le fichier metadata.json qui est plus longue que les valeurs configurées via l’API PutTableMaintenanceConfiguration. Dans ces cas, S3 n’expire pas et ne supprime pas les instantanés, et vous devez supprimer manuellement les instantanés ou supprimer les propriétés de votre table Iceberg pour éviter les frais de stockage.
Vous pouvez uniquement configurer la gestion des instantanés au niveau de la table. Pour plus d’informations, consultez les informations de tarification dans Tarification Amazon S3
Exemples de gestion des instantanés
Les exemples suivants illustrent les configurations de gestion d’instantanés de table.
- Pour configurer la gestion des instantanés à l’aide de l’AWS CLI
-
L’exemple suivant définit le paramètre
MinimumSnapshotssur 10 et le paramètreMaximumSnapshotAgesur 2 500 heures à l’aide de l’APIPutTableMaintenanceConfiguration.aws s3tables put-table-maintenance-configuration \ --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket \ --namespacemy_namespace\ --namemy_table\ --type icebergSnapshotManagement \ --value '{"status":"enabled","settings":{"icebergSnapshotManagement":{"minSnapshotsToKeep":10,"maxSnapshotAgeHours":2500}}}' - Pour désactiver la gestion des instantanés à l’aide de l’AWS CLI
-
L’exemple suivant permet de désactiver la gestion des instantanés à l’aide de l’API
PutTableMaintenanceConfiguration.aws s3tables put-table-maintenance-configuration \ --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket \ --namespacemy_namespace\ --namemy_table\ --type icebergSnapshotManagement \ --value '{"status":"disabled","settings":{"icebergSnapshotManagement":{"minSnapshotsToKeep":1,"maxSnapshotAgeHours":120}}}'
Pour plus d’informations, consultez put-table-maintenance-configuration
Considérations et restrictions
Pour en savoir plus sur les considérations et les restrictions supplémentaires relatives au compactage et à la gestion des instantanés, consultez Considérations et restrictions relatives aux tâches de maintenance.
Note
S3 Tables applique la taille par défaut du groupe de lignes pour les parquets de 128 Mo.