

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.

# Didacticiel : Premiers pas avec S3 Tables
<a name="s3-tables-getting-started"></a>

Dans ce didacticiel, vous allez créer un compartiment de tables et intégrer des compartiments de tables dans votre région aux services AWS d'analyse. Vous allez ensuite utiliser la console AWS CLI or pour créer votre premier espace de noms et votre première table dans votre compartiment de tables. Ensuite, vous pouvez commencer à interroger votre table avec Athéna.

**Astuce**  
Si vous migrez des données tabulaires de compartiments à usage général vers des compartiments de table, la bibliothèque de solutions AWS propose une solution guidée pour vous aider. Cette solution automatise le déplacement Apache Hive des tables enregistrées Apache Iceberg AWS Glue Data Catalog et stockées dans des compartiments à usage général vers des compartiments de table en utilisant AWS Step Functions Amazon EMR avec. Apache Spark Pour plus d’informations, consultez [Instructions relatives à la migration de données tabulaires d’Amazon S3 vers S3 Tables](https://aws.amazon.com/solutions/guidance/migrating-tabular-data-from-amazon-s3-to-s3-tables/) dans la bibliothèque de solutions AWS .

**Topics**
+ [Étape 1 : créer un bucket de tables et l'intégrer aux services AWS d'analyse](#s1-tables-tutorial-create-bucket)
+ [Étape 2 : créer un espace de noms de tables et une table](#s2-tables-tutorial-create-namespace-and-table)
+ [Étape 3 : Interroger des données avec SQL dans Athena](#s4-query-tables)

## Étape 1 : créer un bucket de tables et l'intégrer aux services AWS d'analyse
<a name="s1-tables-tutorial-create-bucket"></a>

Dans cette étape, vous utilisez la console Amazon S3 pour créer votre premier compartiment de table. Pour découvrir d’autres méthodes de création d’un compartiment de tables, consultez [Création d’un compartiment de tables](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-buckets-create.html).

**Note**  
Par défaut, la console Amazon S3 intègre automatiquement vos compartiments de tables AWS Glue Data Catalog, ce qui permet aux services d' AWS analyse de découvrir et d'accéder automatiquement à vos données de tables S3. Si vous créez votre premier bucket de table par programmation à l'aide de l'API AWS Command Line Interface (AWS CLI) ou REST AWS SDKs, vous devez effectuer manuellement l'intégration des services AWS d'analyse. Pour de plus amples informations, veuillez consulter [Intégration des tables Amazon S3 aux services AWS d'analyse](s3-tables-integrating-aws.md).

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

1. Dans la barre de navigation en haut de la page, choisissez le nom du fichier actuellement affiché Région AWS. Choisissez ensuite la région dans laquelle vous souhaitez créer le compartiment de table.

1. Dans le volet de navigation de gauche, choisissez **Compartiments de tables**.

1. Choisissez **Créer un compartiment de tables**.

1. Sous **Configuration générale**, saisissez un nom pour votre compartiment de table.

   Le nom du compartiment de table doit présenter les caractéristiques suivantes : 
   + Soyez unique pour vous Compte AWS dans la région actuelle.
   + Il doit comporter entre 3 et 63 caractères.
   + Composé uniquement de lettres minuscules, de chiffres et de tirets (). `-`
   + Il doit commencer et se terminer par une lettre ou un chiffre.

   Une fois le compartiment de table créé, vous ne pouvez pas changer son nom. Le bucket Compte AWS qui crée le tableau en est propriétaire. Pour plus d’informations sur la dénomination des compartiments de table, consultez [Règles de dénomination des compartiments de tables](s3-tables-buckets-naming.md#table-buckets-naming-rules).

1. Dans la section **Intégration aux services AWS d'analyse**, assurez-vous que la case **Activer l'intégration** est cochée. 

   Si l'option **Activer l'intégration** est sélectionnée lorsque vous créez votre premier compartiment de table à l'aide de la console, Amazon S3 tente d'intégrer votre compartiment de table aux services AWS d'analyse. Cette intégration vous permet d'utiliser les services AWS d'analyse pour accéder à toutes les tables de la région actuelle. Pour de plus amples informations, veuillez consulter [Intégration des tables Amazon S3 aux services AWS d'analyse](s3-tables-integrating-aws.md).

1. Choisissez **Créer un compartiment**.

## Étape 2 : créer un espace de noms de tables et une table
<a name="s2-tables-tutorial-create-namespace-and-table"></a>

Pour cette étape, vous créez un espace de noms dans votre compartiment de table, puis créez une nouvelle table sous cet espace de noms. Vous pouvez créer un espace de noms de tables et une table en utilisant la console ou l’ AWS CLI. 

**Important**  
Lorsque vous créez des tables, assurez-vous d’utiliser toutes les lettres minuscules dans les noms et les définitions de tables. Par exemple, assurez-vous que les noms des tables et des colonnes sont tous en minuscules. Si le nom ou la définition de votre table contient des majuscules, le tableau n'est pas pris en charge par AWS Lake Formation le AWS Glue Data Catalog. Dans ce cas, votre table ne sera pas visible par les services d' AWS analyse tels qu'Amazon Athena, même si vos compartiments de tables sont intégrés aux AWS services d'analyse.   
Si la définition de votre table contient des majuscules, le message d'erreur suivant s'affiche lorsque vous exécutez une `SELECT` requête dans Athena : « GENERIC\_INTERNAL\_ERROR : Get table request failed : com.amazonaws.services.glue.model. ValidationException: ressource de fédération non prise en charge - Noms de table ou de colonne non valides. »

### Utilisation de la console S3 et d’Amazon Athena
<a name="s3-tables-tutorial-create-table-console"></a>

La procédure suivante utilise la console Amazon S3 pour créer un espace de noms et une table avec Amazon Athena. 

**Pour créer un espace de noms de tables et une table**

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

1. Dans le volet de navigation de gauche, choisissez **Compartiments de tables**.

1. Sur la page **Compartiments de table**, choisissez le compartiment de table dans lequel vous souhaitez créer une table.

1. Sur la page des détails du compartiment de table, choisissez **Créer une table avec Athena**. 

1. Dans la boîte de dialogue **Créer une table avec Athena**, choisissez **Créer un espace de noms**, puis saisissez un nom dans le champ **Nom de l’espace de noms**. Les noms des espaces de noms doivent comporter de 1 à 255 caractères et être uniques dans le compartiment de table. Les caractères valides sont : a-z, A-Z, 0-9 et le trait d’union (`_`). Les traits de soulignement ne sont pas autorisés au début des noms d’espaces de noms.

1. Choisissez **Create namespace (Créer un espace de noms)**.

1. Choisissez **Créer une table avec Athena**.

1. La console Amazon Athena s’ouvre et l’éditeur de requêtes Athena apparaît. L’éditeur de requêtes contient un exemple de requête que vous pouvez utiliser pour créer une table. Modifiez la requête pour spécifier le nom de la table et les colonnes que vous souhaitez attribuer à la table. 

1. Lorsque vous avez terminé de modifier la requête, choisissez **Exécuter** pour créer votre table. 

Si la création de votre table a réussi, le nom de votre nouvelle table apparaît dans la liste des tables d’Athena. Lorsque vous revenez à la console Amazon S3, votre nouvelle table apparaît dans la liste **Tables** de la page de détails de votre compartiment de table une fois que vous avez actualisé la liste. 

### En utilisant le AWS CLI
<a name="s3-tables-tutorial-create-table-CLI"></a>

Pour utiliser les AWS CLI exemples de commandes suivants afin de créer un espace de noms dans votre compartiment de tables, puis de créer une nouvelle table avec un schéma sous cet espace de noms, remplacez les `{{user input placeholder}}` valeurs par les vôtres.

**Conditions préalables**
+ Associez ensuite la politique [https://docs.aws.amazon.com//aws-managed-policy/latest/reference/AmazonS3TablesFullAccess.html](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/AmazonS3TablesFullAccess.html) à votre identité. 
+ Installez AWS CLI la version 2.23.10 ou supérieure. Pour plus d'informations, consultez [Installation ou mise à jour de la version la plus récente de l' AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) (langue française non garantie) dans le *Guide de l'utilisateur AWS Command Line Interface *.

1. Créez un nouvel espace de noms dans votre compartiment de table en exécutant la commande suivante :

   ```
   aws s3tables create-namespace \
   --table-bucket-arn arn:aws:s3tables:{{us-east-1}}:{{111122223333}}:bucket/{{amzn-s3-demo-table-bucket}} \
   --namespace {{my_namespace}}
   ```

   1. Vérifiez que votre espace de noms a été créé avec succès en exécutant la commande suivante : 

     ```
     aws s3tables list-namespaces \
     --table-bucket-arn arn:aws:s3tables:{{us-east-1}}:{{111122223333}}:bucket/{{amzn-s3-demo-table-bucket}}
     ```

1. Créez une nouvelle table avec un schéma de table en exécutant la commande suivante :

   ```
   aws s3tables create-table --cli-input-json file://{{mytabledefinition.json}}
   ```

   Pour le fichier `mytabledefinition.json`, utilisez l’exemple de définition de table suivant :

   ```
   {
       "tableBucketARN": "arn:aws:s3tables:{{us-east-1}}:{{111122223333}}:bucket/{{amzn-s3-demo-table-bucket}}",
       "namespace": "{{my_namespace}}",
       "name": "{{my_table}}",
       "format": "ICEBERG",
       "metadata": {
           "iceberg": {
               "schema": {
                   "fields": [
                        {{{"name": "id", "type": "int","required": true},
                        {"name": "name", "type": "string"},
                        {"name": "value", "type": "int"}}}
                   ]
               }
           }
       }
   }
   ```

## Étape 3 : Interroger des données avec SQL dans Athena
<a name="s4-query-tables"></a>

Vous pouvez interroger votre table avec SQL dans Athena. Athena prend en charge les requêtes en langage de définition de données (DDL), en langage de manipulation de données (DML) et en langage de requête de données (DQL) pour S3 Tables.

Vous pouvez accéder à la requête Athena depuis la console Amazon S3 ou via la console Amazon Athena. 

### Utilisation de la console S3 et d’Amazon Athena
<a name="s4-query-tables-query-table-s3-console"></a>

La procédure suivante utilise la console Amazon S3 pour accéder à l’éditeur de requêtes Athena afin que vous puissiez interroger une table avec Amazon Athena. 

**Pour interroger une table**

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

1. Dans le volet de navigation de gauche, choisissez **Compartiments de tables**.

1. Sur la page **Compartiments de table**, choisissez le compartiment qui contient la table que vous souhaitez interroger.

1. Dans la page des détails du compartiment, choisissez le bouton radio en regard du nom de la table que vous souhaitez interroger. 

1. Choisissez **Interroger une table avec Athena**.

1. La console Amazon Athena s’ouvre et l’éditeur de requêtes Athena apparaît avec un exemple de requête `SELECT` chargé pour vous. Modifiez cette requête en fonction de votre cas d’utilisation. 

1. Pour exécuter la requête, choisissez ensuite **Run** (Exécuter).

### Utilisation de la console Amazon Athena
<a name="s4-query-tables-query-table-athena-console"></a>

**Pour interroger une table**

1. Ouvrez la console à l'adresse [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. Interrogez votre table. Voici un exemple de requête que vous pouvez modifier. Veillez à remplacer les `{{user input placeholders}}` par vos propres informations.

   ```
   SELECT * FROM "s3tablescatalog/{{amzn-s3-demo-table-bucket}}"."{{my_namespace}}"."{{my_table}}" LIMIT 10
   ```

1. Pour exécuter la requête, choisissez ensuite **Run** (Exécuter). 