Création de configurations de table de métadonnées - Amazon Simple Storage Service

Création de configurations de table de métadonnées

Pour générer et stocker des métadonnées Amazon S3 dans une table de métadonnées entièrement gérée par Apache Iceberg vous devez créer une configuration de table de métadonnées pour votre compartiment à usage général. Amazon S3 est conçu pour mettre à jour en continu les tables de métadonnées afin qu’elles reflètent les dernières modifications apportées aux données tant que la configuration est active sur le compartiment. En outre, Amazon S3 optimise en permanence vos tables de métadonnées afin de réduire les coûts de stockage et d’améliorer les performances des requêtes d’analytique.

Pour chaque compartiment à usage général, vous pouvez créer une configuration de table de métadonnées contenant deux tables de métadonnées complémentaires :

  • Table de journal : par défaut, la configuration de votre table de métadonnées contient une table de journal, qui capture les événements qui affectent les objets de votre compartiment. La table de journal enregistre les modifications apportées à vos données en temps quasi réel, ce qui vous permet d’identifier les nouvelles données chargées dans votre compartiment, de suivre les objets récemment supprimés, de surveiller les transitions de cycle de vie, etc. La table de journal enregistre les nouveaux objets ainsi que les mises à jour de vos objets et de leurs métadonnées (les mises à jour nécessitant une opération PUT ou DELETE).

    La table de journal capture uniquement les métadonnées des événements de modification (tels que les chargements, les mises à jour et les suppressions) qui se produisent une fois que vous avez créé la configuration de votre table de métadonnées. Comme cette table peut être interrogée, vous pouvez auditer les modifications apportées à votre compartiment à l’aide de simples requêtes SQL.

    La table de journal est requise pour chaque configuration de table de métadonnées. (Dans la version initiale de S3 Metadata, la table de journal était appelée « table de métadonnées ».)

    Pour plus d’informations sur les données stockées dans les tables de journal, consultez Schémas de tables de journal de métadonnées S3.

    Pour réduire vos coûts de stockage, vous pouvez activer l’expiration des enregistrements de votre table de journal. Pour plus d’informations, consultez Expiration des enregistrements d’une table de journal.

  • Table d’inventaire dynamique : vous pouvez également ajouter un table d’inventaire dynamique à la configuration de votre table de métadonnées. La table d’inventaire dynamique fournit un inventaire simple et interrogeable de tous les objets de votre compartiment et de leurs versions afin que vous puissiez déterminer l’état le plus récent de vos données.

    Vous pouvez utiliser la table d’inventaire dynamique pour simplifier et accélérer les flux de travail et les tâches de big data en identifiant les objets que vous souhaitez traiter pour différentes charges de travail. Par exemple, vous pouvez interroger la table d’inventaire dynamique pour rechercher tous les objets stockés dans une classe de stockage particulière, tous les objets dotés de certaines balises, tous les objets qui ne sont pas chiffrés côté serveur à l’aide de clés AWS Key Management Service (AWS KMS) (SSE-KMS), etc.

    Quand vous activez la table d’inventaire dynamique pour la configuration de votre table de métadonnées, celle-ci est soumise à un processus appelé remplissage, au cours duquel Amazon S3 analyse votre compartiment à usage général afin de récupérer les métadonnées initiales de tous les objets qu’il contient. Selon le nombre d’objets contenus dans votre compartiment, ce processus peut prendre de quelques minutes (minimum 15 minutes) à quelques heures. Lorsque le processus de renvoi est terminé, le statut de votre table d’inventaire dynamique passe de Remplissage à Actif. Une fois le remplissage terminé, les mises à jour apportées à vos objets sont généralement répercutées a table d’inventaire dynamique dans un délai d’une heure.

    Le remplissage de votre table d’inventaire dynamique vous est facturé. Si votre compartiment à usage général contient plus d’un milliard d’objets, des frais mensuels vous sont également facturés pour votre table d’inventaire dynamique. Pour plus d’informations, consultez Tarification Amazon S3.

    Pour plus d’informations sur les données stockées dans les tables d’inventaire dynamiques, consultez Schéma des tables d’inventaire dynamiques de S3 Metadata.

Les tables de métadonnées possèdent le format d’Amazon Resource Name (ARN) suivant, qui inclut l’ID de la table de métadonnées :

arn:aws:s3tables:region-code:account-id:bucket/aws-s3/table/table-id

Par exemple, une table de métadonnées dans la région USA Est (Virginie du Nord) possède un ARN comme celui-ci :

arn:aws:s3tables:us-east-1:111122223333:bucket/aws-s3/table/a12bc345-67d8-912e-3456-7f89123g4h56

Les tables de journal portent le nom journal, et les tables d’inventaire dynamiques inventory.

Lorsque vous configurez vos tables de métadonnées, celles-ci sont stockées dans un compartiment de table géré par AWS. Toutes les configurations de table de métadonnées de votre compte et de la même région sont stockées dans un même compartiment de table géré par AWS. Ces compartiment de table gérés par AWS sont nommés aws-s3 et possèdent le format d’Amazon Resource Name (ARN) suivant :

arn:aws:s3tables:region:account_id:bucket/aws-s3

Par exemple, si votre ID de compte est 123456789012 et que votre compartiment à usage général se trouve dans la région USA Est (Virginie du Nord) (us-east-1), votre compartiment de table géré par AWS est également créé la région USA Est (Virginie du Nord) (us-east-1) et possède l’ARN suivant :

arn:aws:s3tables:us-east-1:123456789012:bucket/aws-s3

Par défaut, les compartiments de table gérés par AWS sont chiffrés avec un chiffrement côté serveur à l’aide de clés gérées par Amazon S3 (SSE-S3). Après avoir créé votre première configuration de métadonnées, vous pouvez définir le paramètre de chiffrement par défaut du compartiment de table géré par AWS de manière à utiliser le chiffrement côté serveur avec des clés AWS Key Management Service (AWS KMS) (SSE-KMS). Pour plus d’informations, consultez Chiffrement des compartiments de table gérés par AWS et Spécification du chiffrement côté serveur avec des clés AWS KMS (SSE-KMS) dans les compartiments de table.

Dans votre compartiment de table géré par AWS, les tables de métadonnées de votre configuration sont généralement stockées dans un espace de noms au format suivant :

b_general-purpose-bucket-name

Pour plus d’informations sur les espaces de nom des tables de métadonnées, consultez Fonctionnement des tables de métadonnées.

Lors de la création de la configuration de votre table de métadonnées, vous pouvez chiffrer votre table de journal gérée par AWS côté serveur à l’aide de clés AWS Key Management Service (AWS KMS) (SSE-KMS). Si vous choisissez d’utiliser le chiffrement SSE-KMS, vous devez fournir une clé KMS gérée par le client dans la même région que votre compartiment à usage général. Vous pouvez définir le type de chiffrement de vos tables uniquement lors de leur création. Une fois qu’une table gérée par AWS est créée, vous ne pouvez plus modifier ses paramètres de chiffrement. Pour spécifier le chiffrement SSE-KMS pour vos tables de métadonnées, vous devez disposer de certaines autorisations. Pour plus d’informations, consultez Autorisations pour SSE-KMS.

Le paramètre de chiffrement d’une table de métadonnées prévaut sur le paramètre de chiffrement par défaut du compartiment. Si vous ne spécifiez pas de chiffrement pour une table, celle-ci hérite du paramètre de chiffrement par défaut du compartiment.

Les compartiments de table gérés par AWS ne sont pas pris en compte dans vos quotas S3 Tables. Pour plus d’informations sur l’utilisation des compartiments de table gérés par AWS et des tables gérées par AWS, consultez Utilisation de compartiments de table gérés par AWS.

Vous pouvez créer la configuration d’une table de métadonnées à l’aide de la console Amazon S3, de l’AWS Command Line Interface (AWS CLI), des kits AWS SDK ou de l’API REST Amazon S3.

Note
  • Si vous avez créé votre configuration S3 Metadata avant le 15 juillet 2025, nous vous recommandons de la supprimer et de la recréer afin de pouvoir faire expirer les enregistrements de vos tables de journal et créer une table d’inventaire. Pour plus d’informations, consultez Activation des tables d’inventaire sur des configurations de métadonnées créées avant le 15 juillet 2025.

  • Si vous avez supprimé la configuration de votre table de métadonnées et que vous souhaitez créer une nouvelle configuration pour le même compartiment à usage général, vous devez d’abord supprimer manuellement les anciennes tables de journal et d’inventaire de votre compartiment de table géré par AWS. Sinon, la création de la nouvelle configuration de table de métadonnées échouera, car ces tables existent déjà. Pour supprimer vos tables de métadonnées, consultez Suppression d’une table de métadonnées.

    La suppression d’une configuration de table de métadonnées entraîne uniquement la suppression de la configuration. Le compartiment de table géré par AWS et vos tables de métadonnées sont conservés, même si vous supprimez la configuration de la table de métadonnées.

Prérequis

Avant de créer une configuration de table de métadonnées, assurez-vous de remplir les prérequis suivants :

  • Avant de créer une configuration de table de métadonnées, assurez-vous de disposer des autorisations AWS Identity and Access Management (IAM) nécessaires pour créer et gérer des tables de métadonnées. Pour plus d’informations, consultez Définition des autorisations pour la configuration des tables de métadonnées.

  • Si vous envisagez d’interroger vos tables de métadonnées avec Amazon Athena ou un autre moteur de requêtes AWS, assurez-vous d’intégrer votre compartiment de table géré par AWS aux services d’analytique AWS. Pour plus d’informations, consultez Intégration d’Amazon S3 Tables aux services d’analytique AWS.

    Si vous avez déjà intégré un compartiment de table existant dans cette région, votre compartiment de table géré par AWS est intégré automatiquement également. Pour déterminer le statut d’intégration de vos compartiments de table dans cette région, ouvrez la console Amazon S3 et choisissez Compartiments de table dans le volet de navigation de gauche. Sous Intégration avec les services d’analytique AWS, vérifiez la région et vérifiez si le statut d’intégration indique Activé.

Création d’une configuration de table de métadonnées

Pour créer la configuration d’une table de métadonnées

Avant de créer la configuration d’une table de métadonnées, assurez-vous que vous avez vérifié les prérequis, que vous les respectez et que vous avez passé en revue Limites et restrictions liées à une table de métadonnées.

  1. Connectez-vous à la AWS Management Console et ouvrez la console Amazon S3 à l’adresse https://console.aws.amazon.com/s3/.

  2. Dans le volet de navigation de gauche, choisissez Compartiments à usage général.

  3. Choisissez le compartiment à usage général pour lequel vous souhaitez créer une configuration de table de métadonnées.

    Note

    Assurez-vous que ce compartiment à usage général correspond à une Région AWS dans laquelle des compartiments de table sont disponibles. Les compartiments de table ne sont disponibles que dans les régions USA Est (Virginie du Nord), USA Est (Ohio) et USA Ouest (Oregon).

  4. Sur la page de détails du compartiment, sélectionnez l’onglet Métadonnées.

  5. Dans l’onglet Métadonnées, choisissez Créer une configuration de métadonnées.

  6. Sur la page Création de la configuration de métadonnées, sous Table de journal, vous pouvez choisir de chiffrer votre table côté serveur à l’aide de clés AWS Key Management Service (AWS KMS) (SSE-KMS). Par défaut, les tables de journal sont chiffrées côté serveur à l’aide de clés gérés par Amazon S3 (SSE-S3).

    Si vous choisissez d’utiliser le chiffrement SSE-KMS, vous devez fournir une clé KMS gérée par le client dans la même région que votre compartiment à usage général.

    Important

    Vous pouvez définir le type de chiffrement de vos tables de métadonnées uniquement lors de leur création. Une fois qu’une table gérée par AWS est créée, vous ne pouvez plus modifier ses paramètres de chiffrement.

    • Pour chiffrer votre table de journal avec SSE-S3 (valeur par défaut), choisissez Ne pas spécifier de type de chiffrement.

    • Pour chiffrer votre table de journal avec SSE-KMS, choisissez Spécifier le type de chiffrement. Sous Type de chiffrement, choisissez Chiffrement côté serveur avec des clés AWS Key Management Service (AWS KMS) (SSE-KMS). Sous Clé AWS KMS, choisissez une clé KMS parmi celles existantes ou saisissez l’ARN de votre clé KMS. Si vous ne possédez pas encore de clé KMS, choisissez Saisir l’ARN de la clé KMS, puis Créer une clé KMS.

      Assurez-vous d’avoir configuré les autorisations nécessaires pour le chiffrement SSE-KMS. Pour plus d’informations, consultez Autorisations pour SSE-KMS.

  7. (Facultatif) Par défaut, les enregistrements de votre table de journal n’expirent pas. Pour réduire les coûts de stockage de votre table de journal, choisissez Activée pour Expiration de l’enregistrement.

    Si vous activez l’expiration des enregistrements de votre table de journal, vous pouvez définir le nombre de jours de conservation de ces enregistrements. Pour définir la valeur Jours après lesquels les enregistrements expirent, vous pouvez spécifier n’importe quel nombre entier compris entre 7 et 2147483647. Par exemple, pour conserver les enregistrements de votre table de journal pendant un an, définissez cette valeur sur 365.

    Les enregistrements expireront dans les 24 à 48 heures suivant leur date d’expiration.

    Important

    Une fois expirés, les enregistrements des tables de journal ne peuvent pas être récupérés.

    Cochez la case sous Les enregistrements de la table de journal expireront après le nombre de jours spécifié.

  8. (Facultatif) Si vous souhaitez ajouter une table d’inventaire à la configuration de votre table de métadonnées, sous Table d’inventaire en direct, choisissez Activé pour Statut de la configuration.

    Vous pouvez choisir de chiffrer votre table côté serveur à l’aide de clés AWS Key Management Service (AWS KMS) (SSE-KMS). Par défaut, les tables d’inventaire sont chiffrées côté serveur à l’aide de clés gérées par Amazon S3 (SSE-S3).

    Si vous choisissez d’utiliser le chiffrement SSE-KMS, vous devez fournir une clé KMS gérée par le client dans la même région que votre compartiment à usage général.

    Important

    Vous pouvez définir le type de chiffrement de vos tables de métadonnées uniquement lors de leur création. Une fois qu’une table gérée par AWS est créée, vous ne pouvez plus modifier ses paramètres de chiffrement.

    • Pour chiffrer votre table d’inventaire avec SSE-S3 (valeur par défaut), choisissez Ne pas spécifier de type de chiffrement.

    • Pour chiffrer votre table d’inventaire avec SSE-KMS, choisissez Spécifier le type de chiffrement. Sous Type de chiffrement, choisissez Chiffrement côté serveur avec des clés AWS Key Management Service (AWS KMS) (SSE-KMS). Sous Clé AWS KMS, choisissez une clé KMS parmi celles existantes ou saisissez l’ARN de votre clé KMS. Si vous ne possédez pas encore de clé KMS, choisissez Saisir l’ARN de la clé KMS, puis Créer une clé KMS.

      Assurez-vous d’avoir configuré les autorisations nécessaires pour le chiffrement SSE-KMS. Pour plus d’informations, consultez Autorisations pour SSE-KMS.

  9. Choisissez Créer une configuration de table de métadonnées.

Si la configuration de votre table de métadonnées aboutit, les noms et ARN de vos tables de métadonnées, ainsi que le nom de votre compartiment de table géré par AWS et de votre espace de noms, s’affichent dans l’onglet Métadonnées.

Si vous avez choisi d’activer une table d’inventaire pour la configuration de votre table de métadonnées, celle-ci est soumise à un processus appelé remplissage, au cours duquel Amazon S3 analyse votre compartiment à usage général afin de récupérer les métadonnées initiales de tous les objets qu’il contient. Selon le nombre d’objets contenus dans votre compartiment, ce processus peut prendre de quelques minutes (minimum 15 minutes) à quelques heures. Lorsque le processus de remplissage est terminé, le statut de votre table d’inventaire passe de Remplissage à Actif. Une fois le remplissage terminé, les mises à jour apportées à vos objets sont généralement répercutées la table d’inventaire dynamique dans un délai d’une heure.

Pour surveiller les mises à jour apportées à la configuration de votre table de métadonnées, vous pouvez utiliser AWS CloudTrail. Pour plus d’informations, consultez Actions au niveau du compartiment Amazon S3 qui sont suivies par la journalisation CloudTrail..

Pour exécuter les commandes suivantes, l’AWS CLI doit être installé et configuré. Si vous n’avez pas installé l’AWS CLI, consultez Installation ou mise à jour de la dernière version de l’AWS CLI dans le Guide de l’utilisateur de l’AWS Command Line Interface.

Vous pouvez aussi exécuter des commandes d’AWS CLI depuis la console avec AWS CloudShell. AWS CloudShell est un shell préauthentifié, basé sur un navigateur, que vous pouvez lancer directement à partir de la AWS Management Console. Pour plus d’informations, consultez Qu’est-ce que CloudShell ? et Commencer avec AWS CloudShell dans le Guide de l’utilisateur AWS CloudShell.

Pour créer la configuration d’une table de métadonnées à l’aide de l’AWS CLI

Avant de créer la configuration d’une table de métadonnées, assurez-vous que vous avez vérifié les prérequis, que vous les respectez et que vous avez passé en revue Limites et restrictions liées à une table de métadonnées.

Pour utiliser les exemples de commandes suivants, remplacez les user input placeholders par vos propres informations.

  1. Créez un fichier JSON contenant la configuration de votre table de métadonnées et enregistrez-le (par exemple, metadata-config.json). Voici un exemple de configuration.

    Vous devez spécifier s’il convient d’activer ou de désactiver l’expiration des enregistrements de votre table de journal. Si vous choisissez d’activer l’expiration des enregistrements, vous devez également spécifier le nombre de jours après lesquels les enregistrements de votre table de journal expireront. Pour définir la valeur Days, vous pouvez spécifier n’importe quel nombre entier compris entre 7 et 2147483647. Par exemple, pour conserver les enregistrements de votre table de journal pendant un an, définissez cette valeur sur 365.

    Vous pouvez éventuellement choisir de configurer une table d’inventaire.

    Pour les tables de journal et d’inventaire, vous pouvez éventuellement spécifier une configuration de chiffrement. Par défaut, les tables de métadonnées sont chiffrées côté serveur à l’aide de clés gérées par Amazon S3 (SSE-S3), que vous pouvez spécifier en définissant SseAlgorithm sur AES256.

    Pour chiffrer vos tables de métadonnées côté serveur à l’aide de clés AWS Key Management Service (AWS KMS) (SSE-KMS), définissez SseAlgorithm sur aws:kms. Vous devez également définir KmsKeyArn sur l’ARN d’une clé KMS gérée par le client dans la même région que celle où se trouve votre compartiment à usage général.

    { "JournalTableConfiguration": { "RecordExpiration": { "Expiration": "ENABLED", "Days": 10 }, "EncryptionConfiguration": { "SseAlgorithm": "AES256" } }, "InventoryTableConfiguration": { "ConfigurationState": "ENABLED", "EncryptionConfiguration": { "SseAlgorithm": "aws:kms", "KmsKeyArn": "arn:aws:kms:us-east-2:account-id:key/key-id" } } }
  2. Utilisez la commande suivante pour appliquer la configuration de la table de métadonnées à votre compartiment à usage général (par exemple, amzn-s3-demo-bucket) :

    aws s3api create-bucket-metadata-configuration \ --bucket amzn-s3-demo-bucket \ --metadata-configuration file://./metadata-config.json \ --region us-east-2
  3. Pour vérifier si la configuration a été créée, utilisez la commande suivante :

    aws s3api get-bucket-metadata-configuration \ --bucket amzn-s3-demo-bucket \ --region us-east-2

Pour surveiller les mises à jour apportées à la configuration de votre table de métadonnées, vous pouvez utiliser AWS CloudTrail. Pour plus d’informations, consultez Actions au niveau du compartiment Amazon S3 qui sont suivies par la journalisation CloudTrail..

Vous pouvez envoyer des demandes REST pour créer la configuration d’une table de métadonnées. Pour plus d’informations, consultez CreateBucketMetadataConfiguration dans la Référence des API Amazon S3.

Vous pouvez utiliser les kits AWS SDK pour créer la configuration d’une table de métadonnées dans Amazon S3. Pour plus d’informations, consultez la liste des kits SDK pris en charge dans la Référence des API Amazon S3.

Activation des tables d’inventaire sur des configurations de métadonnées créées avant le 15 juillet 2025

Si vous avez créé votre configuration S3 Metadata avant le 15 juillet 2025, nous vous recommandons de la supprimer et de la recréer afin de pouvoir faire expirer les enregistrements de vos tables de journal et créer une table d’inventaire. Les modifications apportées à votre compartiment à usage général entre la suppression de l’ancienne configuration et la création de la nouvelle ne sont enregistrées dans aucun de vos tables de journal.

Pour migrer d’une ancienne configuration de métadonnées vers une nouvelle, procédez comme suit :

  1. Supprimez la configuration de votre table de métadonnées. Pour obtenir des instructions détaillées, consultez Suppression de configurations de table de métadonnées.

  2. Créez une nouvelle configuration de table de métadonnées. Pour obtenir des instructions détaillées, consultez Création de configurations de table de métadonnées.

Si vous avez besoin d’aide pour migrer votre configuration, contactez AWS Support.

Après avoir créé votre nouvelle configuration de métadonnées, vous disposez de deux tables de journal. Si vous n’avez plus besoin de l’ancienne table, vous pouvez la supprimer. Pour obtenir des instructions détaillées, consultez Suppression des tables de métadonnées. Si vous avez conservé votre ancienne table de journal et que vous souhaitez la joindre à la nouvelle, consultez Jonction de métadonnées personnalisées à des tables de métadonnées S3 pour voir des exemples illustrant comment joindre deux tables.

Après la migration, vous pouvez effectuer les actions suivantes :

  1. Pour afficher votre configuration, vous pouvez désormais utiliser l’opération d’API GetBucketMetadataConfiguration. Pour déterminer si votre configuration est ancienne ou nouvelle, vous pouvez consulter l’attribut suivant de votre réponse d’API GetBucketMetadataConfiguration. Un type de compartiment géré par AWS ("aws") indique une nouvelle configuration, et un type de compartiment géré par le client ("customer") indique une ancienne configuration.

    "MetadataTableConfigurationResult": { "TableBucketType": ["aws" | "customer"]

    Pour plus d’informations, consultez Affichage de la configuration d’une table de métadonnées.

    Note

    Vous pouvez utiliser les opérations d’API GetBucketMetadataConfiguration et DeleteBucketMetadataConfiguration avec vos anciennes ou nouvelles configurations de table de métadonnées. Toutefois, si vous essayez d’utiliser les opérations d’API GetBucketMetadataTableConfiguration et DeleteBucketMetadataTableConfiguration avec de nouvelles configurations, vous recevrez des erreurs HTTP 405 Method Not Allowed.

    Veillez à mettre à jour vos processus pour pouvoir utiliser les nouvelles opérations d’API (CreateBucketMetadataConfiguration, GetBucketMetadataConfiguration et DeleteBucketMetadataConfiguration) au lieu des anciennes opérations d’API.

  2. Si vous envisagez d’interroger vos tables de métadonnées avec Amazon Athena ou un autre moteur de requêtes AWS, assurez-vous d’intégrer votre compartiment de table géré par AWS aux services d’analytique AWS. Si vous avez déjà intégré un compartiment de table existant dans cette région, votre compartiment de table géré par AWS est intégré automatiquement également. Pour plus d’informations, consultez Intégration d’Amazon S3 Tables aux services d’analytique AWS.