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
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.
Rubriques
Autorisations requises
Pour utiliser la commande COPY, vous devez avoir le privilège INSERT pour la table Amazon Redshift.
Syntaxe de la commande COPY
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
La commande COPY nécessite trois éléments :
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 AWS Identity and Access Management (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 dans le guide de démarrage Amazon Redshift.
- table-name
-
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
-
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 à partir de fichiers de données situés dans un cluster Amazon EMR, une EC2 instance Amazon ou un hôte distant auquel votre cluster peut accéder via une connexion SSH, ou vous pouvez le charger directement à partir d'une table DynamoDB.
- Autorisation
-
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 facultatifs
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.
Mappage de colonnes
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.
Paramètres du format de données
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.
Paramètres de conversion de données
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.
Opérations de chargement de données
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.
Notes d’utilisation et ressources supplémentaires pour la commande COPY
Pour plus d’informations sur la façon d’utiliser la commande COPY, consultez les rubriques suivantes :
Exemples de commandes COPY
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.