

 Amazon Redshift ne prendra plus en charge la création de nouveaux Python à UDFs partir du patch 198. UDFs Le Python existant continuera de fonctionner jusqu'au 30 juin 2026. Pour plus d’informations, consultez le [ billet de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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.

# COPY
<a name="r_COPY"></a>


|  | 
| --- |
| Le chiffrement côté client pour les commandes COPY et UNLOAD ne sera plus ouvert aux nouveaux clients à compter du 30 avril 2025. Si vous avez utilisé le chiffrement côté client avec les commandes COPY et UNLOAD au cours des 12 mois précédant le 30 avril 2025, vous pouvez continuer à utiliser le chiffrement côté client avec les commandes COPY ou UNLOAD jusqu’au 30 avril 2026. Après le 30 avril 2026, vous ne pourrez plus utiliser le chiffrement côté client pour COPY et UNLOAD. Nous vous recommandons de passer au chiffrement côté serveur pour COPY et UNLOAD dès que possible. Si vous utilisez déjà le chiffrement côté serveur pour COPY et UNLOAD, il n’y a aucun changement et vous pouvez continuer à l’utiliser sans modifier vos requêtes. Pour plus d’informations sur le chiffrement pour COPY et UNLOAD, consultez le paramètre ENCRYPTED ci-dessous.  | 

Charge des données dans une table depuis des fichiers de données ou une table Amazon DynamoDB. Les fichiers peuvent être situés dans un compartiment Amazon Simple Storage Service (Amazon S3), un cluster Amazon EMR ou un hôte distant auquel on accède à l’aide d’une connexion SSH (Secure Shell).

**Note**  
Les tables externes d’Amazon Redshift Spectrum sont en lecture seule. Vous ne pouvez pas copier (COPY) une table externe.

La commande COPY ajoute les données d’entrée à la table sous forme de lignes supplémentaires.

La taille maximale d’une seule ligne d’entrée à partir de n’importe quelle source est de 4 Mo.

**Topics**
+ [Autorisations requises](#r_COPY-permissions)
+ [Syntaxe de la commande COPY](#r_COPY-syntax)
+ [Paramètres requis](#r_COPY-syntax-required-parameters)
+ [Paramètres facultatifs](#r_COPY-syntax-overview-optional-parameters)
+ [Notes d’utilisation et ressources supplémentaires pour la commande COPY](#r_COPY-using-the-copy-command)
+ [Exemples de commandes COPY](#r_COPY-using-the-copy-command-examples)
+ [COPY JOB](r_COPY-JOB.md)
+ [COPIER avec TEMPLATE](r_COPY-WITH-TEMPLATE.md)
+ [Description des paramètres de la commande COPY](r_COPY-parameters.md)
+ [Notes d’utilisation](r_COPY_usage_notes.md)
+ [Exemples de commandes COPY](r_COPY_command_examples.md)

## Autorisations requises
<a name="r_COPY-permissions"></a>

Pour utiliser la commande COPY, vous devez avoir le privilège [INSERT](r_GRANT.md#grant-insert) pour la table Amazon Redshift.

## Syntaxe de la commande COPY
<a name="r_COPY-syntax"></a>

```
COPY table-name 
[ column-list ]
FROM data_source
authorization
[ [ FORMAT ] [ AS ] data_format ] 
[ parameter [ argument ] [, ... ] ]
```

Vous pouvez effectuer une opération COPY avec aussi peu que trois paramètres : un nom de table, une source de données et l’autorisation d’accéder aux données. 

Amazon Redshift étend la fonctionnalité de la commande COPY pour vous permettre de charger les données dans plusieurs formats de données à partir de plusieurs sources de données, de contrôler l’accès pour charger les données, de gérer les transformations des données et de gérer l’opération de chargement. 

Les sections suivantes présentent les paramètres de la commande COPY requis et regroupent les paramètres facultatifs par fonction. Elles décrivent également chaque paramètre et expliquent comment différentes options fonctionnent ensemble. Vous pouvez accéder directement à une description du paramètre à l’aide de la liste alphabétique des paramètres. 

## Paramètres requis
<a name="r_COPY-syntax-required-parameters"></a>

La commande COPY nécessite trois éléments : 
+ [Table Name](#r_COPY-syntax-overview-table-name)
+ [Data Source](#r_COPY-syntax-overview-data-source)
+ [Authorization](#r_COPY-syntax-overview-credentials)

La commande COPY la plus simple utilise le format suivant. 

```
COPY table-name 
FROM data-source
authorization;
```

L’exemple suivant crée une table nommée CATDEMO et puis charge la table avec des exemples de données à partir d’un fichier de données dans Amazon S3 nommé `category_pipe.txt`. 

```
create table catdemo(catid smallint, catgroup varchar(10), catname varchar(10), catdesc varchar(50));
```

Dans l’exemple suivant, la source de données de la commande COPY est un fichier de données nommé `category_pipe.txt` dans le dossier `tickit` d’un compartiment Amazon S3 nommé `redshift-downloads`. La commande COPY est autorisée à accéder au compartiment Amazon S3 via un rôle Gestion des identités et des accès AWS (IAM). Si votre cluster comporte un rôle IAM existant avec la permission d’accès à Amazon S3 attaché, vous pouvez remplacer le nom Amazon Resource Name (ARN) de votre rôle dans la commande COPY suivante et l’exécuter.

```
copy catdemo
from 's3://redshift-downloads/tickit/category_pipe.txt'
iam_role 'arn:aws:iam::{{<aws-account-id>}}:role/{{<role-name>}}'
region 'us-east-1';
```

Pour obtenir des instructions complètes sur l'utilisation des commandes COPY pour charger des échantillons de données, y compris des instructions pour charger des données provenant d'autres AWS régions, consultez la section [Charger des échantillons de données depuis Amazon S3](https://docs.aws.amazon.com/redshift/latest/gsg/rs-gsg-create-sample-db.html) dans le guide de démarrage Amazon Redshift.

*table-name*  <a name="r_COPY-syntax-overview-table-name"></a>
Nom de la table cible de la commande COPY. La table doit déjà exister dans la base de données. La table peut être temporaire ou permanente. La commande COPY ajoute les nouvelles données d’entrée à toutes les lignes existantes de la table.

FROM *data-source*  <a name="r_COPY-syntax-overview-data-source"></a>
Emplacement des données source à charger dans la table cible. Un fichier manifeste peut être spécifié avec des sources de données.   
Le référentiel de données le plus couramment utilisé est un compartiment Amazon S3. Vous pouvez également charger des fichiers de données situés dans un cluster Amazon EMR, une instance Amazon EC2 ou un hôte distant auquel votre cluster peut accéder à l’aide d’une connexion SSH, ou vous pouvez charger directement depuis une table DynamoDB.   
+ [Commande COPY depuis Amazon S3](copy-parameters-data-source-s3.md)
+ [Commande COPY depuis Amazon EMR](copy-parameters-data-source-emr.md) 
+ [Exécution de la commande COPY à partir de l’hôte distant (SSH)](copy-parameters-data-source-ssh.md)
+ [Commande COPY depuis Amazon DynamoDB](copy-parameters-data-source-dynamodb.md)

Autorisation  <a name="r_COPY-syntax-overview-credentials"></a>
Clause qui indique la méthode utilisée par votre cluster pour l'authentification et l'autorisation d'accéder à d'autres AWS ressources. La commande COPY nécessite une autorisation pour accéder aux données d'une autre AWS ressource, notamment Amazon S3, Amazon EMR, Amazon DynamoDB et Amazon EC2. Vous pouvez fournir cette autorisation en faisant référence à un rôle IAM qui est attaché à votre cluster ou en fournissant l’ID de clé d’accès et la clé d’accès secrète pour un utilisateur IAM.   
+ [Paramètres d’autorisation](copy-parameters-authorization.md) 
+ [Contrôle d’accès basé sur les rôles](copy-usage_notes-access-permissions.md#copy-usage_notes-access-role-based) 
+ [Contrôle d’accès basé sur les clés](copy-usage_notes-access-permissions.md#copy-usage_notes-access-key-based) 

## Paramètres facultatifs
<a name="r_COPY-syntax-overview-optional-parameters"></a>

Le cas échéant, vous pouvez spécifier comment la commande COPY mappe les données de champ aux colonnes dans la table cible, définir les attributs de données source pour activer la commande COPY afin de lire et d’analyser correctement les données source et gérer les opérations que la commande COPY effectue pendant le processus de chargement. 
+ [Options de mappage de colonnes](copy-parameters-column-mapping.md)
+ [Paramètres du format de données](#r_COPY-syntax-overview-data-format)
+ [Paramètres de conversion de données](#r_COPY-syntax-overview-data-conversion)
+ [Opérations de chargement de données](#r_COPY-syntax-overview-data-load)

### Mappage de colonnes
<a name="r_COPY-syntax-overview-column-mapping"></a>

Par défaut, la commande COPY insère des valeurs de champ dans les colonnes de la table cible dans le même ordre que les champs se présentent dans les fichiers de données. Si l'ordre des colonnes par défaut ne fonctionne pas, vous pouvez spécifier une liste de colonnes ou utiliser des JSONPath expressions pour mapper les champs de données source aux colonnes cibles. 
+ [Column List](copy-parameters-column-mapping.md#copy-column-list)
+ [JSONPaths File](copy-parameters-column-mapping.md#copy-column-mapping-jsonpaths)

### Paramètres du format de données
<a name="r_COPY-syntax-overview-data-format"></a>

Vous pouvez charger les données à partir de fichiers texte au format JSON, dans des fichiers de valeurs séparées par des virgules, par des caractères, à largeur fixe (CSV), ou à partir de fichiers Avro.

Par défaut, la commande COPY attend que les données source se trouvent dans des fichiers texte UTF-8 séparés par des caractères. Le délimiteur par défaut est une barre verticale ( \| ). Si les données source sont dans un autre format, utilisez les paramètres suivants pour spécifier le format des données.
+ [FORMAT](copy-parameters-data-format.md#copy-format)
+ [CSV](copy-parameters-data-format.md#copy-csv)
+ [DELIMITER](copy-parameters-data-format.md#copy-delimiter) 
+ [FIXEDWIDTH](copy-parameters-data-format.md#copy-fixedwidth) 
+ [SHAPEFILE](copy-parameters-data-format.md#copy-shapefile) 
+ [AVRO](copy-parameters-data-format.md#copy-avro) 
+ [JSON format for COPY](copy-parameters-data-format.md#copy-json) 
+ [ENCRYPTED](copy-parameters-data-source-s3.md#copy-encrypted) 
+ [BZIP2](copy-parameters-file-compression.md#copy-bzip2) 
+ [GZIP](copy-parameters-file-compression.md#copy-gzip) 
+ [LZOP](copy-parameters-file-compression.md#copy-lzop) 
+ [PARQUET](copy-parameters-data-format.md#copy-parquet) 
+ [ORC](copy-parameters-data-format.md#copy-orc) 
+ [ZSTD](copy-parameters-file-compression.md#copy-zstd) 

### Paramètres de conversion de données
<a name="r_COPY-syntax-overview-data-conversion"></a>

Lorsqu’elle charge la table, la commande COPY tente implicitement de convertir les chaînes dans les données source vers le type de données de la colonne cible. Si vous devez spécifier une conversion qui est différente du comportement par défaut, ou si la conversion par défaut entraîne des erreurs, vous pouvez gérer les conversions de données en spécifiant les paramètres suivants.
+ [ACCEPTANYDATE](copy-parameters-data-conversion.md#copy-acceptanydate) 
+ [ACCEPTINVCHARS](copy-parameters-data-conversion.md#copy-acceptinvchars) 
+ [BLANKSASNULL](copy-parameters-data-conversion.md#copy-blanksasnull) 
+ [DATEFORMAT](copy-parameters-data-conversion.md#copy-dateformat) 
+ [EMPTYASNULL](copy-parameters-data-conversion.md#copy-emptyasnull) 
+ [ENCODING](copy-parameters-data-conversion.md#copy-encoding) 
+ [ESCAPE](copy-parameters-data-conversion.md#copy-escape) 
+ [EXPLICIT_IDS](copy-parameters-data-conversion.md#copy-explicit-ids) 
+ [FILLRECORD](copy-parameters-data-conversion.md#copy-fillrecord) 
+ [IGNOREBLANKLINES](copy-parameters-data-conversion.md#copy-ignoreblanklines) 
+ [IGNOREHEADER](copy-parameters-data-conversion.md#copy-ignoreheader) 
+ [NULL AS](copy-parameters-data-conversion.md#copy-null-as) 
+ [REMOVEQUOTES](copy-parameters-data-conversion.md#copy-removequotes) 
+ [ROUNDEC](copy-parameters-data-conversion.md#copy-roundec) 
+ [TIMEFORMAT](copy-parameters-data-conversion.md#copy-timeformat) 
+ [TRIMBLANKS](copy-parameters-data-conversion.md#copy-trimblanks) 
+ [TRUNCATECOLUMNS](copy-parameters-data-conversion.md#copy-truncatecolumns) 

### Opérations de chargement de données
<a name="r_COPY-syntax-overview-data-load"></a>

Gérez le comportement par défaut de l’opération de chargement pour le dépannage ou pour réduire les temps de chargement en spécifiant les paramètres suivants. 
+ [COMPROWS](copy-parameters-data-load.md#copy-comprows) 
+ [COMPUPDATE](copy-parameters-data-load.md#copy-compupdate) 
+ [IGNOREALLERRORS](copy-parameters-data-load.md#copy-ignoreallerrors) 
+ [MAXERROR](copy-parameters-data-load.md#copy-maxerror) 
+ [NOLOAD](copy-parameters-data-load.md#copy-noload) 
+ [STATUPDATE](copy-parameters-data-load.md#copy-statupdate) 

## Notes d’utilisation et ressources supplémentaires pour la commande COPY
<a name="r_COPY-using-the-copy-command"></a>

Pour plus d’informations sur la façon d’utiliser la commande COPY, consultez les rubriques suivantes : 
+ [Notes d’utilisation](r_COPY_usage_notes.md)
+ [Didacticiel : chargement des données à partir d’Amazon S3](tutorial-loading-data.md)
+ [Bonnes pratiques de chargement des données sur Amazon Redshift](c_loading-data-best-practices.md)
+ [Chargement de tables à l’aide de la commande COPY](t_Loading_tables_with_the_COPY_command.md)
  + [Chargement des données à partir d’Amazon S3](t_Loading-data-from-S3.md)
  + [Chargement de données à partir d’Amazon EMR](loading-data-from-emr.md)
  + [Chargement des données à partir des hôtes distants](loading-data-from-remote-hosts.md) 
  + [Chargement de données à partir d’une table Amazon DynamoDB](t_Loading-data-from-dynamodb.md)
+ [Résolution des problèmes de chargement de données](t_Troubleshooting_load_errors.md)

## Exemples de commandes COPY
<a name="r_COPY-using-the-copy-command-examples"></a>

Pour d’autres exemples montrant comment utiliser COPY à partir de différentes sources, dans des formats disparates et avec différentes options de copie, consultez [Exemples de commandes COPY](r_COPY_command_examples.md).