Entretien des tables - Amazon Simple Storage Service

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.

Entretien des tables

S3 Tables propose des opérations de maintenance pour améliorer la gestion et les performances de vos tables individuelles. Les options suivantes sont activées par défaut pour toutes les tables contenues dans des compartiments de tables. 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.

Compactage

Le compactage est configuré au niveau de la table et combine plusieurs petits objets en objets moins nombreux et plus grands afin d'améliorer les performances des Apache Iceberg requêtes. Lorsque vous combinez des objets, le compactage applique également les effets des suppressions au niveau des lignes dans votre tableau.

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 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.

Stratégies de compactage

Vous pouvez choisir parmi plusieurs stratégies de compactage susceptibles d'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 en charge les stratégies de compactage suivantes 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, le sort compactage auto sera automatiquement appliqué.

    • Pour les tables sans ordre de tri, le binpack compactage auto sera utilisé par défaut.

  • Sac à poubelles

    • 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 triées automatiquement par hiérarchie 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 a 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 sur plusieurs dimensions simultanément. Cette stratégie vous oblige à définir un ordre de tri dans les propriétés de votre table Iceberg à l'aide de la propriété sort_order table.

Le compactage entraînera des coûts supplémentaires. Pour plus d’informations, consultez les informations de tarification dans Tarification Amazon S3.

Exemples de compactage

Les exemples suivants présentent des configurations pour le compactage des tables.

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 put-table-maintenance-configuration 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 modifiera la stratégie de compactage en sort utilisant l'PutTableMaintenanceConfigurationAPI. Lorsque vous définissez le compactage, vous pouvez choisir l'une des stratégies de compactage suivantes :auto,binpack, ou sort z-order

Note

Pour définir la stratégie de compactage sur sort ou z-order vous devez remplir les conditions préalables suivantes :

  • Ordre de tri défini dans les propriétés de votre Iceberg table.

  • L's3tables:GetTableDataautorisation.

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 put-table-maintenance-configuration 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 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 la prise de contact AWS Support, consultez la section Contact AWS ou la AWS Support documentation.

La gestion des instantanés détermine les objets à supprimer de votre tableau en faisant uniquement référence à ce tableau. Les références à ces objets depuis l'extérieur du tableau n'empêcheront pas la gestion des snapshots de les supprimer.

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 snapshots

Les exemples suivants présentent des configurations pour la gestion des 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 désactivera la gestion des snapshots à l'aide de l'PutTableMaintenanceConfigurationAPI.

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 put-table-maintenance-configuration dans la Référence des commandes de l’AWS CLI .

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 row-group-default taille des parquets de 128 Mo.