

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.

# Maintenance des tables
<a name="s3-tables-maintenance"></a>

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 automatisées de S3 Tables sur vos tables par le biais de CloudTrail journaux. Pour plus d'informations, consultez[CloudTrail événements de gestion pour la maintenance des tables S3](s3-tables-logging.md#s3-tables-maintenance-events).

**Topics**
+ [Compactage](#s3-tables-maintenance-compaction)
+ [Gestion des instantanés](#s3-tables-maintenance-snapshot)
+ [Considérations et restrictions](#s3-tables-considerations-see-more)

## Compactage
<a name="s3-tables-maintenance-compaction"></a>

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
<a name="s3-tables-maintenance-compaction-strategies"></a>

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, `auto` applique automatiquement le compactage `sort`.
  + Pour les tables sans ordre de tri, `auto` utilise par défaut le compactage `binpack`.
+ **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_order` est 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](https://aws.amazon.com/s3/pricing/).

### Exemples de compactage
<a name="tables-compaction-examples"></a>

Les exemples suivants illustrent les configurations de compactage de table.

**Pour configurer la taille du fichier cible de compactage à l'aide du 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 \
   --namespace {{mynamespace}} \
   --name {{testtable}} \
   --value='{"status":"enabled","settings":{"icebergCompaction":{"targetFileSizeMB":256}}}'
```
Pour plus d’informations, consultez [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3tables/put-table-maintenance-configuration.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3tables/put-table-maintenance-configuration.html) dans la *Référence des commandes de l’AWS CLI *.

**Pour configurer la stratégie de compactage à l'aide du AWS CLI**  
L’exemple suivant modifie la stratégie de compactage en `sort` en utilisant l’API `PutTableMaintenanceConfiguration`. Lorsque vous définissez le compactage, vous pouvez choisir l’une des stratégies de compactage suivantes : `auto`, `binpack`, `sort` ou `z-order`  
Pour définir la stratégie de compactage sur `sort` ou `z-order`, vous devez respecter les prérequis suivants :  
+ Ordre de tri défini dans les propriétés de votre table Iceberg.
+ l’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 \
   --namespace {{mynamespace}} \
   --name {{testtable}} \
   --value='{"status":"enabled","settings":{"icebergCompaction":{"strategy":"sort"}}}'
```
Pour plus d’informations, consultez [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3tables/put-table-maintenance-configuration.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3tables/put-table-maintenance-configuration.html) dans la *Référence des commandes de l’AWS CLI *.

**Pour désactiver le compactage à l'aide du 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 \
   --namespace {{mynamespace}} \
   --name {{testtable}} \
   --value='{"status":"disabled","settings":{"icebergCompaction":{"targetFileSizeMB":256}}}'
```
Pour plus d’informations, consultez [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3tables/put-table-maintenance-configuration.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3tables/put-table-maintenance-configuration.html) dans la *Référence des commandes de l’AWS CLI *.

## Gestion des instantanés
<a name="s3-tables-maintenance-snapshot"></a>

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 la prise de [contact AWS Support, consultez la section Contact AWS](https://aws.amazon.com/contact-us/) ou la [AWS Support documentation](https://aws.amazon.com/documentation/aws-support/).

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 snapshots ne prend pas en charge les valeurs de rétention que vous configurez sous forme de propriétés de Apache Iceberg table dans le `metadata.json` fichier ou via une commande `ALTER TABLE SET TBLPROPERTIES` SQL. Si l'une des conditions suivantes existe, la gestion des instantanés échouera pour l'ensemble de la table et Amazon S3 n'expirera pas et ne supprimera aucun instantané :  
**Balises ou branches définies par l'**utilisateur : si une balise ou une branche définie par l'utilisateur existe sur la table, la gestion des instantanés échouera pour l'ensemble de la table. Cela s'applique même si le tag ou la branche a une courte période de conservation. Pour rétablir l'expiration automatique des instantanés, supprimez de la table toutes les balises et branches définies par l'utilisateur.
**Propriétés de la table de conservation des instantanés Iceberg** : si la `history.expire.min-snapshots-to-keep` propriété `history.expire.max-snapshot-age-ms` or est définie en tant que propriété de Apache Iceberg table, la gestion des instantanés échouera pour l'ensemble de la table, quelle que soit la valeur configurée. Pour rétablir l'expiration automatique des instantanés, supprimez les propriétés suivantes :  

  ```
  ALTER TABLE {{mydb}}.{{mytable}} UNSET TBLPROPERTIES ('history.expire.max-snapshot-age-ms');
  ALTER TABLE {{mydb}}.{{mytable}} UNSET TBLPROPERTIES ('history.expire.min-snapshots-to-keep');
  ```
Pour diagnostiquer les défaillances de gestion des snapshots, utilisez l'`GetTableMaintenanceJobStatus`API ou exécutez la AWS CLI commande suivante. En cas d'échec de la gestion des snapshots, la réponse inclut un `FAILED` état accompagné d'un message décrivant la cause de l'échec.  

```
aws s3tables get-table-maintenance-job-status \
    --table-bucket-arn arn:aws:s3tables:{{us-east-1}}:{{111122223333}}:bucket/{{amzn-s3-demo-table-bucket}} \
    --namespace {{my_namespace}} \
    --name {{my_table}}
```

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](https://aws.amazon.com/s3/pricing/).

### Exemples de gestion des instantanés
<a name="tables-snapshot-examples"></a>

Les exemples suivants illustrent les configurations de gestion d’instantanés de table.

**Pour configurer la gestion des snapshots à l'aide du AWS CLI**  
L’exemple suivant définit le paramètre `MinimumSnapshots` sur 10 et le paramètre `MaximumSnapshotAge` sur 2 500 heures à 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 \
--namespace {{my_namespace}} \
--name {{my_table}} \
--type icebergSnapshotManagement \
--value '{"status":"enabled","settings":{"icebergSnapshotManagement":{"minSnapshotsToKeep":10,"maxSnapshotAgeHours":2500}}}'
```

**Pour désactiver la gestion des snapshots à l'aide du 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 \
--namespace {{my_namespace}} \
--name {{my_table}} \
--type icebergSnapshotManagement \
--value '{"status":"disabled","settings":{"icebergSnapshotManagement":{"minSnapshotsToKeep":1,"maxSnapshotAgeHours":120}}}'
```

Pour plus d’informations, consultez [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3tables/put-table-maintenance-configuration.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3tables/put-table-maintenance-configuration.html) dans la *Référence des commandes de l’AWS CLI *.

## Considérations et restrictions
<a name="s3-tables-considerations-see-more"></a>

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](s3-tables-considerations.md).

**Note**  
S3 Tables applique la row-group-default taille des parquets de 128 Mo.