

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.

# Exportation de données à partir d’une instance de base de données RDS pour PostgreSQL vers Amazon S3
<a name="postgresql-s3-export"></a>

Vous pouvez interroger des données à partir d’une instance de base de données RDS pour PostgreSQL et les exporter directement dans des fichiers stockés dans un compartiment Amazon S3. Pour ce faire, vous devez d’abord installer l’extension `aws_s3` RDS pour PostgreSQL. Cette extension vous fournit les fonctions que vous utilisez pour exporter les résultats des requêtes vers Amazon S3. Vous trouverez ci-dessous comment installer l’extension et comment exporter des données vers Amazon S3. 

**Note**  
Cross-account l'exportation vers Amazon S3 n'est pas prise en charge. 

Toutes les versions actuellement disponibles de RDS pour PostgreSQL prennent en charge l’exportation de données vers Amazon Simple Storage Service. Pour des informations détaillées sur les versions, consultez [Mises à jour d’Amazon RDS pour PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/PostgreSQLReleaseNotes/postgresql-versions.html) dans *Notes de mise à jour d’Amazon RDS pour PostgreSQL*.

Si vous n’avez pas de compartiment configuré pour votre exportation, consultez les rubriques suivantes du *Guide de l’utilisateur d’Amazon Simple Storage Service*. 
+ [Configuration d’Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/setting-up-s3.html)
+ [Création d’un compartiment](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)

Par défaut, les données exportées depuis RDS pour PostgreSQL vers Amazon S3 utilisent un chiffrement côté serveur avec une Clé gérée par AWS. Si vous utilisez le chiffrement par compartiment, le compartiment Amazon S3 doit être chiffré avec une clé AWS Key Management Service (AWS KMS) (SSE-KMS). Actuellement, les compartiments chiffrés avec les clés gérées par Amazon S3 (SSE-S3) ne sont pas pris en charge.

**Note**  
Vous pouvez enregistrer les données des instantanés de base de données sur Amazon S3 à l'aide de l'API AWS Management Console AWS CLI, ou Amazon RDS. Pour de plus amples informations, veuillez consulter [Exportation de données d’instantanés de bases de données vers Amazon S3 pour Amazon RDS](USER_ExportSnapshot.md).

**Topics**
+ [Installation de l’extension aws\_s3](#USER_PostgreSQL.S3Export.InstallExtension)
+ [Présentation de l’exportation de données vers Amazon S3](#postgresql-s3-export-overview)
+ [Spécification du chemin d’accès au fichier Amazon S3 vers lequel effectuer l’exportation](#postgresql-s3-export-file)
+ [Configuration de l’accès à un compartiment Amazon S3](postgresql-s3-export-access-bucket.md)
+ [Exportation de données de requête à l’aide de la fonction aws\_s3.query\_export\_to\_s3](postgresql-s3-export-examples.md)
+ [Références de fonctions](postgresql-s3-export-functions.md)
+ [Résolution des problèmes d'accès à Amazon S3](postgresql-s3-export-troubleshoot.md)

## Installation de l’extension aws\_s3
<a name="USER_PostgreSQL.S3Export.InstallExtension"></a>

Avant de pouvoir utiliser Amazon Simple Storage Service avec votre instance de base de données RDS pour PostgreSQL, vous devez installer l’extension `aws_s3`. Cette extension fournit des fonctions pour exporter des données depuis une instance de base de données RDS pour PostgreSQL vers un compartiment Amazon S3. Il fournit également des fonctions pour importer des données depuis un compartiment Amazon S3. Pour plus d’informations, consultez [Importation de données Amazon S3 dans une instance de base de données RDS for PostgreSQL d'un ](USER_PostgreSQL.S3Import.md). L’extension `aws_s3` dépend de certaines des fonctions d’aide de l’extension `aws_commons`, qui est installée automatiquement lorsque cela est nécessaire. 

**Pour installer l’extension `aws_s3`**

1. Utilisez psql (ou pgAdmin) pour vous connecter à l’instance de base de données RDS pour PostgreSQL en tant qu’utilisateur disposant de privilèges `rds_superuser`. Si vous avez conservé le nom par défaut pendant le processus d’installation, vous vous connectez en tant que `postgres`.

   ```
   psql --host={{111122223333}}.{{aws-region}}.rds.amazonaws.com --port=5432 --username=postgres --password
   ```

1. Pour installer l’extension, exécutez la commande suivante. 

   ```
   postgres=> CREATE EXTENSION aws_s3 CASCADE;
   NOTICE: installing required extension "aws_commons"
   CREATE EXTENSION
   ```

1. Pour vérifier que l’extension est installée, vous pouvez utiliser la métacommande psql `\dx`.

   ```
   postgres=> \dx
          List of installed extensions
       Name     | Version |   Schema   |                 Description
   -------------+---------+------------+---------------------------------------------
    aws_commons | 1.2     | public     | Common data types across AWS services
    aws_s3      | 1.1     | public     | AWS S3 extension for importing data from S3
    plpgsql     | 1.0     | pg_catalog | PL/pgSQL procedural language
   (3 rows)
   ```

Les fonctions d’importation de données depuis Amazon S3 et d’exportation de données vers Amazon S3 sont désormais disponibles.

### Vérifiez que votre version de RDS pour PostgreSQL Aurora PostgreSQL en charge les exportations vers Amazon S3
<a name="postgresql-s3-supported"></a>

Vous pouvez vérifier que votre version de RDS pour PostgreSQL prend en charge l’exportation vers Amazon S3 en utilisant la commande `describe-db-engine-versions`. L’exemple suivant vérifie la prise en charge de la version 10.14.

```
aws rds describe-db-engine-versions --region us-east-1
--engine postgres --engine-version 10.14 | grep s3Export
```

Si la sortie inclut la chaîne `"s3Export"`, le moteur prend en charge les exportations Amazon S3. Sinon, le moteur ne les prend pas en charge.

## Présentation de l’exportation de données vers Amazon S3
<a name="postgresql-s3-export-overview"></a>

Pour exporter des données stockées dans un RDS pour PostgreSQL vers un compartiment Amazon S3, procédez comme suit.

**Pour exporter des données RDS pour PostgreSQL vers S3**

1. Identifiez un chemin d’accès de fichier Amazon S3 à utiliser pour exporter des données. Pour plus d’informations sur ce processus, consultez [Spécification du chemin d’accès au fichier Amazon S3 vers lequel effectuer l’exportation](#postgresql-s3-export-file).

1. Fournissez une autorisation d’accès au compartiment Amazon S3.

   Pour exporter des données vers un fichier Amazon S3, vous devez accorder à l’instance de base de données RDS pour PostgreSQL l’autorisation d’accéder au compartiment Amazon S3 que l’exportation utilisera pour le stockage. Cette opération comprend les étapes suivantes :

   1. Créez une politique IAM donnant accès à un compartiment Amazon S3 vers lequel vous souhaitez exporter.

   1. Créez un rôle IAM.

   1. Attachez la politique que vous avez créée au rôle que vous avez créé.

   1. Ajoutez ce rôle IAM à votre instance de base de données.

   Pour plus d’informations sur ce processus, consultez [Configuration de l’accès à un compartiment Amazon S3](postgresql-s3-export-access-bucket.md).

1. Identifiez une requête de base de données pour obtenir les données. Exportez les données de requête en appelant la fonction `aws_s3.query_export_to_s3`. 

   Après avoir terminé les tâches de préparation précédentes, utilisez la fonction [aws\_s3.query\_export\_to\_s3](postgresql-s3-export-functions.md#aws_s3.export_query_to_s3) pour exporter les résultats de requête vers Amazon S3. Pour plus d’informations sur ce processus, consultez [Exportation de données de requête à l’aide de la fonction aws\_s3.query\_export\_to\_s3](postgresql-s3-export-examples.md).

## Spécification du chemin d’accès au fichier Amazon S3 vers lequel effectuer l’exportation
<a name="postgresql-s3-export-file"></a>

Spécifiez les informations suivantes pour identifier l’emplacement dans Amazon S3 vers lequel vous souhaitez exporter des données :
+ Nom du compartiment : un *compartiment* est un conteneur d’objets ou de fichiers Amazon S3.

  Pour plus d’informations sur le stockage de données avec Amazon S3, consultez [Création d’un compartiment](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) et [Utilisation des objets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/uploading-downloading-objects.html) dans le *Guide de l’utilisateur Amazon Simple Storage Service*. 
+ Chemin d’accès au fichier : le chemin d’accès au fichier identifie l’emplacement de stockage de l’exportation dans le compartiment Amazon S3. Le chemin d’accès au fichier se compose des éléments suivants :
  + Préfixe de chemin facultatif qui identifie un chemin d’accès à un dossier virtuel.
  + Préfixe de fichier qui identifie un ou plusieurs fichiers à stocker. Les exportations les plus volumineuses sont stockées dans plusieurs fichiers, chacun ayant une taille maximale d’environ 6 Go. Les noms de fichiers supplémentaires ont le même préfixe de fichier mais en ajoutant `_part{{XX}}`. `{{XX}}` représente 2, puis 3, et ainsi de suite.

  Par exemple, un chemin d’accès de fichier avec un dossier `exports` et un préfixe de fichier `query-1-export` sera représenté par `/exports/query-1-export`.
+ AWS Région (facultatif) : AWS région dans laquelle se trouve le compartiment Amazon S3. Si vous ne spécifiez aucune valeur de AWS région, Amazon RDS enregistre vos fichiers dans Amazon S3 dans la même AWS région que l'instance de base de données du cluster exportant.
**Note**  
Actuellement, la AWS région doit être identique à la région de l'instance de base de données du  de bases de données exportatrice.

  Pour obtenir la liste des noms de AWS régions et des valeurs associées, consultez[Régions, zones de disponibilité et zones locales ](Concepts.RegionsAndAvailabilityZones.md).

Pour conserver les informations de fichier Amazon S3 sur l’emplacement de stockage de l’exportation, vous pouvez utiliser la fonction [aws\_commons.create\_s3\_uri](postgresql-s3-export-functions.md#aws_commons.create_s3_uri) pour créer une structure composite `aws_commons._s3_uri_1` comme suit.

```
psql=> SELECT aws_commons.create_s3_uri(
   '{{amzn-s3-demo-bucket}}',
   'sample-filepath',
   'us-west-2'
) AS s3_uri_1 \gset
```

Vous fournissez ultérieurement cette valeur `s3_uri_1` en tant que paramètre dans l’appel à la fonction [aws\_s3.query\_export\_to\_s3](postgresql-s3-export-functions.md#aws_s3.export_query_to_s3). Pour obtenir des exemples, consultez [Exportation de données de requête à l’aide de la fonction aws\_s3.query\_export\_to\_s3](postgresql-s3-export-examples.md).