

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.

# Création de tables
<a name="creating-tables"></a>

AWS Lake Formation les tables de métadonnées contiennent des informations sur les données du lac de données, notamment des informations sur le schéma, les informations de partition et l'emplacement des données. Ces tables sont stockées dans le catalogue AWS Glue de données. Vous les utilisez pour accéder aux données sous-jacentes du lac de données et pour gérer ces données avec les autorisations de Lake Formation. Les tables sont stockées dans les bases de données du catalogue de données.

Il existe plusieurs méthodes pour créer des tables de catalogue de données :
+ Lancez un crawler dedans. AWS Glue Consultez [la section Définition des robots](https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html) d'exploration dans le *guide du AWS Glue développeur*.
+ Créez et exécutez un flux de travail. Consultez [Importation de données à l'aide de flux de travail dans Lake Formation](workflows.md).
+ Créez une table manuellement à l'aide de la console Lake Formation, de AWS Glue l'API ou AWS Command Line Interface (AWS CLI).
+ Créez un tableau à l'aide de Amazon Athena.
+ Créez un lien de ressource vers une table dans un compte externe. Consultez [Création de liens vers des ressources](creating-resource-links.md).

# Création de tables Apache Iceberg
<a name="creating-iceberg-tables"></a>

 AWS Lake Formation prend en charge la création de tables Apache Iceberg qui utilisent le format de données Apache Parquet dans AWS Glue Data Catalog les données résidant dans Amazon S3. Une table dans le catalogue de données correspond à la définition des métadonnées qui représente les données dans un entrepôt de données. Par défaut, Lake Formation crée des tables Iceberg v2. Pour connaître la différence entre les tables v1 et v2, consultez la section [Modifications de version de format](https://iceberg.apache.org/spec/#appendix-e-format-version-changes) dans la documentation Apache Iceberg.

 [Apache Iceberg](https://iceberg.apache.org/) est un format de table ouvert pour les jeux de données analytiques très volumineux. Iceberg permet de modifier facilement votre schéma, également ce que l’on appelle l’évolution du schéma, ce qui signifie que les utilisateurs peuvent ajouter, renommer ou supprimer des colonnes d’une table de données sans perturber les données sous-jacentes. Iceberg fournit également une prise en charge pour la gestion des versions des données, ce qui permet aux utilisateurs de suivre les modifications apportées aux données au fil du temps. Cela active la fonctionnalité Time Travel, qui permet aux utilisateurs d’accéder aux versions historiques des données, de les interroger, mais aussi d’analyser les modifications apportées aux données entre les mises à jour et les suppressions.

Vous pouvez utiliser la console Lake Formation ou l'`CreateTable`opération de l' AWS Glue API pour créer une table Iceberg dans le catalogue de données. Pour plus d'informations, consultez [CreateTable action (Python : create\$1table](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-tables.html#aws-glue-api-catalog-tables-CreateTable)).

Lorsque vous créez une table Iceberg dans le catalogue de données, vous devez spécifier le format de la table et le chemin d’accès au fichier de métadonnées dans Amazon S3 pour pouvoir effectuer des lectures et des écritures.

 Vous pouvez utiliser Lake Formation pour sécuriser votre table Iceberg à l'aide d'autorisations de contrôle d'accès précises lorsque vous enregistrez l'emplacement des données Amazon S3 auprès de celui-ci. AWS Lake Formation Pour les données source dans Amazon S3 et les métadonnées qui ne sont pas enregistrées auprès de Lake Formation, l'accès est déterminé par les politiques d'autorisation IAM pour Amazon S3 et AWS Glue les actions. Pour de plus amples informations, veuillez consulter [Gestion des autorisations relatives à Lake Formation](managing-permissions.md). 

**Note**  
Le catalogue de données ne prend pas en charge la création de partitions ni l’ajout de propriétés de table Iceberg.

**Topics**
+ [Conditions préalables](#iceberg-prerequisites)
+ [Création d’une table Iceberg](#create-iceberg-table)

## Conditions préalables
<a name="iceberg-prerequisites"></a>

 Pour créer des tables Iceberg dans le catalogue de données et configurer les autorisations d’accès aux données de Lake Formation, vous devez remplir les conditions suivantes : 

1. 

**Autorisations requises pour créer des tables Iceberg sans les données enregistrées auprès de Lake Formation :**

   Outre les autorisations requises pour créer une table dans le catalogue de données, le créateur de table exige les autorisations suivantes :
   + `s3:PutObject` sur la ressource arn:aws:s3:::\$1bucketName\$1
   + `s3:GetObject` sur la ressource arn:aws:s3:::\$1bucketName\$1
   + `s3:DeleteObject` sur la ressource arn:aws:s3:::\$1bucketName\$1

1. 

**Autorisations requises pour créer des tables Iceberg avec des données enregistrées auprès de Lake Formation :**

   Pour utiliser Lake Formation afin de gérer et de sécuriser les données de votre lac de données, enregistrez votre site Amazon S3 contenant les données pour les tables auprès de Lake Formation. Cela permet à Lake Formation de vendre des informations d'identification à AWS des services d'analyse tels qu'Athena, Redshift Spectrum et Amazon EMR pour accéder aux données. Pour plus d'informations sur l'enregistrement d'un site Amazon S3, consultez[Ajouter un emplacement Amazon S3 à votre lac de données](register-data-lake.md). 

   Un principal qui lit et écrit les données sous-jacentes enregistrées auprès de Lake Formation doit disposer des autorisations suivantes :
   + `lakeformation:GetDataAccess`
   + `DATA_LOCATION_ACCESS`

     Un principal qui possède des autorisations de localisation des données sur un emplacement possède également des autorisations d’emplacement sur tous les sites enfant.

     Pour plus d'informations sur les autorisations de localisation des données, consultez[Contrôle d'accès aux données sous-jacent](access-control-underlying-data.md).

 Pour activer le compactage, le service doit endosser un rôle IAM autorisé à mettre à jour les tables dans le catalogue de données. Pour plus de détails, consultez la section [Conditions préalables à l'optimisation des tables](https://docs.aws.amazon.com/glue/latest/dg/optimization-prerequisites.html). 

## Création d’une table Iceberg
<a name="create-iceberg-table"></a>

Vous pouvez créer des tables Iceberg v1 et v2 à l'aide de la console Lake Formation ou AWS Command Line Interface comme indiqué sur cette page. Vous pouvez également créer des tables Iceberg à l'aide de AWS Glue la console ou AWS Glue crawler. Pour plus d’informations, consultez [Data Catalog and Crawlers](https://docs.aws.amazon.com/glue/latest/dg/catalog-and-crawler.html) dans le Guide du développeur AWS Glue .

**Pour créer une table Iceberg**

------
#### [ Console ]

1. Connectez-vous à la AWS Management Console console Lake Formation et ouvrez-la à l'adresse [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/).

1. Sous catalogue de données, choisissez **Tables**, puis utilisez le bouton **Créer une table** pour spécifier les attributs suivants :
   + **Nom de la table** : entrez le nom de la table. Si vous utilisez Athena pour accéder à des tables, utilisez ces [conseils de dénomination](https://docs.aws.amazon.com/athena/latest/ug/tables-databases-columns-names.html) figurant dans le Guide de l’utilisateur Amazon Athena.
   + **Base de données** : Choisissez une base de données existante ou créez-en une nouvelle.
   + **Description : description de la** table. Vous pouvez écrire une description vous aidant à comprendre le contenu de la table.
   + **Format de tableau** : pour **Format de tableau**, choisissez Apache Iceberg.  
![\[Option de table Apache Iceberg sélectionnée avec les options d'optimisation des tables.\]](http://docs.aws.amazon.com/fr_fr/lake-formation/latest/dg/images/table-optimization.png)
   + **Optimisation des tables**
     + **Compactage** : les fichiers de données sont fusionnés et réécrits pour supprimer les données obsolètes et regrouper les données fragmentées dans des fichiers plus volumineux et plus efficaces.
     + **Conservation des instantanés** : les instantanés sont des versions horodatées d’une table Iceberg. Les configurations de conservation des instantanés permettent aux clients de définir la durée de conservation des instantanés et le nombre d’instantanés à conserver. La configuration d’un optimiseur de conservation des instantanés peut aider à gérer la charge de stockage en supprimant les instantanés plus anciens et inutiles, ainsi que leurs fichiers sous-jacents associés.
     + **Suppression de fichiers orphelins** : les fichiers orphelins sont des fichiers qui ne sont plus référencés par les métadonnées de la table Iceberg. Ces fichiers peuvent s’accumuler au fil du temps, en particulier après des opérations telles que la suppression de tables ou l’échec de tâches ETL. L'activation de la suppression des fichiers orphelins permet AWS Glue d'identifier et de supprimer périodiquement ces fichiers inutiles, libérant ainsi de l'espace de stockage.

     Pour plus d’informations, consultez [Optimisation des tables Iceberg](https://docs.aws.amazon.com/glue/latest/dg/table-optimizers.html).
   + **Rôle IAM** : pour exécuter le compactage, le service assume un rôle IAM en votre nom. Vous pouvez choisir un rôle IAM à l'aide de la liste déroulante. Assurez-vous que le rôle dispose des autorisations requises pour activer le compactage.

     Pour en savoir plus sur les autorisations requises, consultez la section [Conditions préalables à l'optimisation des tables](https://docs.aws.amazon.com/glue/latest/dg/optimization-prerequisites.html).
   + **Emplacement** : Spécifiez le chemin d'accès au dossier dans Amazon S3 qui stocke la table de métadonnées. Iceberg a besoin d’un fichier de métadonnées et d’un emplacement dans le catalogue de données pour pouvoir effectuer des lectures et des écritures.
   + **Schéma** : choisissez **Ajouter des colonnes** pour ajouter des colonnes et les types de données des colonnes. Vous avez la possibilité de créer une table vide et de mettre à jour le schéma ultérieurement. Le catalogue de données prend en charge les types de données Hive. Pour plus d’informations, consultez [Hive data types](https://cwiki.apache.org/confluence/plugins/servlet/mobile?contentId=27838462#content/view/27838462). 

      Iceberg vous permet de faire évoluer le schéma et la partition après avoir créé la table. Vous pouvez utiliser des [requêtes Athena](https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg-evolving-table-schema.html) pour mettre à jour le schéma de table et des [requêtes Spark](https://iceberg.apache.org/docs/latest/spark-ddl/#alter-table-sql-extensions) pour mettre à jour les partitions. 

------
#### [ AWS CLI ]

```
aws glue create-table \
    --database-name iceberg-db \
    --region us-west-2 \
    --open-table-format-input '{
      "IcebergInput": { 
           "MetadataOperation": "CREATE",
           "Version": "2"
         }
      }' \
    --table-input '{"Name":"test-iceberg-input-demo",
            "TableType": "EXTERNAL_TABLE",
            "StorageDescriptor":{ 
               "Columns":[ 
                   {"Name":"col1", "Type":"int"}, 
                   {"Name":"col2", "Type":"int"}, 
                   {"Name":"col3", "Type":"string"}
                ], 
               "Location":"s3://DOC_EXAMPLE_BUCKET_ICEBERG/"
            }
        }'
```

------

# Optimisation des tables Iceberg
<a name="data-compaction"></a>

Lake Formation prend en charge plusieurs options d'optimisation des tables afin d'améliorer la gestion et les performances des tables Apache Iceberg utilisées par les moteurs AWS d'analyse et les tâches ETL. Ces optimiseurs permettent d’utiliser efficacement le stockage, d’améliorer les performances des requêtes et de gérer efficacement les données. Trois types d'optimiseurs de tables sont disponibles dans Lake Formation : 
+ **Compactage** : le compactage des données compacte les petits fichiers de données afin de réduire l’utilisation du stockage et d’améliorer les performances de lecture. Les fichiers de données sont fusionnés et réécrits pour supprimer les données obsolètes et regrouper les données fragmentées dans des fichiers plus volumineux et plus efficaces. Le compactage peut être configuré pour s'exécuter automatiquement ou être déclenché manuellement selon les besoins. 
+ **Conservation des instantanés** : les instantanés sont des versions horodatées d’une table Iceberg. Les configurations de conservation des instantanés permettent aux clients de définir la durée de conservation des instantanés et le nombre d’instantanés à conserver. La configuration d’un optimiseur de conservation des instantanés peut aider à gérer la charge de stockage en supprimant les instantanés plus anciens et inutiles, ainsi que leurs fichiers sous-jacents associés.
+ **Suppression de fichiers orphelins** : les fichiers orphelins sont des fichiers qui ne sont plus référencés par les métadonnées de la table Iceberg. Ces fichiers peuvent s’accumuler au fil du temps, en particulier après des opérations telles que la suppression de tables ou l’échec de tâches ETL. L'activation de la suppression des fichiers orphelins permet AWS Glue d'identifier et de supprimer périodiquement ces fichiers inutiles, libérant ainsi de l'espace de stockage.

Vous pouvez activer ou désactiver le compactage, la conservation des instantanés et les optimiseurs de suppression de fichiers orphelins pour les tables Iceberg individuelles du catalogue de données à l'aide de la AWS Glue console ou des opérations de l'API AWS CLI. AWS Glue 

Pour plus d'informations, consultez la section [Optimisation des tables Iceberg](https://docs.aws.amazon.com/glue/latest/dg/table-optimizers.html) dans le guide du AWS Glue développeur.

# Recherche de tables
<a name="searching-for-tables"></a>

Vous pouvez utiliser la AWS Lake Formation console pour rechercher des tables du catalogue de données par nom, emplacement, base de données contenant, etc. Les résultats de recherche n'affichent que les tables pour lesquelles vous êtes autorisé à accéder à Lake Formation.

**Pour rechercher des tables (console)**

1. Connectez-vous à la console Lake Formation AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/).

1. Dans le volet de navigation, choisissez **Tables**.

1. Positionnez le curseur dans le champ de recherche en haut de la page. Le champ contient le texte d'espace réservé *Rechercher le tableau par propriétés*.

   Le menu **Propriétés** apparaît et indique les différentes propriétés de table à partir desquelles effectuer une recherche.  
![\[Le menu des propriétés est déroulant à partir du champ de recherche et contient les entrées suivantes : nom, classification, base de données, emplacement, numéro de catalogue\]](http://docs.aws.amazon.com/fr_fr/lake-formation/latest/dg/images/search-for-tables.png)

1. Effectuez l’une des actions suivantes :
   + Recherche par base de données contenant.

     1. Choisissez **Base de données** dans le menu **Propriétés**, puis choisissez une base de données dans le menu **Bases** de données qui apparaît ou tapez un nom de base de données et appuyez sur **Entrée**.

        Les tables sur lesquelles vous avez des autorisations dans la base de données sont répertoriées.

     1. (Facultatif) Pour réduire la liste à une seule table de la base de données, positionnez à nouveau le curseur dans le champ de recherche, choisissez **Nom** dans le menu **Propriétés**, puis choisissez un nom de table dans le menu **Tables** qui apparaît ou tapez un nom de table et appuyez sur **Entrée**.

        La table unique est répertoriée, et le nom de la base de données et le nom de la table apparaissent sous forme de vignettes sous le champ de recherche.  
![\[Sous le champ de recherche se trouvent deux vignettes : l'une intitulée Base de données, qui inclut le nom de la base de données sélectionnée, et l'autre intitulée Table, qui inclut le nom de la table sélectionnée. À droite des vignettes se trouve un bouton Effacer le filtre.\]](http://docs.aws.amazon.com/fr_fr/lake-formation/latest/dg/images/search-for-tables-with-filter.png)

        Pour ajuster le filtre, fermez l'une des vignettes ou choisissez **Effacer le filtre**.
   + Effectuez une recherche par autres propriétés.

     1. Choisissez une propriété de recherche dans le menu **Propriétés**.

        **Pour effectuer une recherche par numéro de AWS compte, choisissez **Numéro de catalogue** dans le menu **Propriétés**, entrez un identifiant de AWS compte valide (par exemple, 111122223333), puis appuyez sur Entrée.**

        Pour effectuer une recherche par lieu, choisissez **Emplacement** dans le menu **Propriétés**, puis sélectionnez un lieu **dans le menu Emplacements** qui apparaît. Toutes les tables situées à l'emplacement racine de l'emplacement sélectionné (par exemple, Amazon S3) sont renvoyées.

**Recherche de tables à l'aide de AWS CLI**
+ L'exemple suivant montre comment exécuter une recherche partielle. Le `--search-text` paramètre vous permet de rechercher des tables contenant le texte spécifié dans leurs métadonnées. Dans ce cas, il renvoie toutes les tables dont le nom, la description ou d'autres champs de métadonnées contiennent « client ».

  ```
  aws glue search-tables 
        --search-text "customer" 
        --region Région AWS
        --max-results 10
        --sort-criteria "FieldName=Name,Sort=ASC"
  ```

# Partage des tables et des bases de données du catalogue de données entre les AWS comptes
<a name="sharing-catalog-resources"></a>

Vous pouvez partager les ressources du catalogue de données (bases de données et tables) avec AWS des comptes externes en accordant à Lake Formation des autorisations sur les ressources aux comptes externes. Les utilisateurs peuvent ensuite exécuter des requêtes et des tâches qui joignent et interrogent des tables sur plusieurs comptes. Sous réserve de certaines restrictions, lorsque vous partagez une ressource de catalogue de données avec un autre compte, les principaux associés de ce compte peuvent utiliser cette ressource comme si elle figurait dans leur catalogue de données.

Vous ne partagez pas de ressources avec des responsables spécifiques dans des AWS comptes externes ; vous partagez les ressources avec un compte ou une AWS organisation. Lorsque vous partagez une ressource avec une AWS organisation, vous la partagez avec tous les comptes à tous les niveaux de cette organisation. L'administrateur du lac de données de chaque compte externe doit ensuite accorder des autorisations sur les ressources partagées aux principaux de son compte.

Pour plus d’informations, consultez [Partage de données entre comptes dans Lake Formation](cross-account-permissions.md) et [Octroi d'autorisations sur les ressources du catalogue de données](granting-catalog-permissions.md).

**Voir aussi :**  
[Accès aux tables et aux bases de données partagées du catalogue de données et affichage](viewing-shared-resources.md)
[Conditions préalables](cross-account-prereqs.md)