Utilisation de la COPY commande pour charger depuis Amazon S3 - Amazon Redshift

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.

Utilisation de la COPY commande pour charger depuis Amazon S3

Utilisez la commande COPY pour charger une table en parallèle à partir de fichiers de données sur Amazon S3. Vous pouvez spécifier les fichiers à charger en utilisant un préfixe d’objet Amazon S3 ou un fichier manifeste.

La syntaxe pour spécifier les fichiers à charger en utilisant un préfixe est la suivante :

COPY <table_name> FROM 's3://<bucket_name>/<object_prefix>' authorization;

Le fichier manifeste est un fichier JSON au format -formaté qui répertorie les fichiers de données à charger. La syntaxe pour spécifier les fichiers à charger en utilisant un fichier manifeste est la suivante :

COPY <table_name> FROM 's3://<bucket_name>/<manifest_file>' authorization MANIFEST;

La table à charger doit déjà exister dans la base de données. Pour plus d'informations sur la création d'une table, reportez-vous CREATE TABLE à la section SQL Référence.

Les valeurs d'autorisation fournissent AWS autorisation dont Amazon Redshift a besoin pour accéder aux objets Amazon S3. Pour plus d’informations sur les autorisations requises, consultez IAMautorisations pour COPYUNLOAD, et CREATE LIBRARY. La méthode d'authentification préférée consiste à spécifier le ROLE paramètre IAM _ et à fournir le nom de ressource Amazon (ARN) pour un IAM rôle disposant des autorisations nécessaires. Pour plus d'informations, consultez Contrôle d’accès basé sur les rôles.

Pour vous authentifier à l'aide du ROLE paramètre IAM _, remplacez <aws-account-id> and <role-name> comme indiqué dans la syntaxe suivante.

IAM_ROLE 'arn:aws:iam::<aws-account-id>:role/<role-name>'

L'exemple suivant montre l'authentification à l'aide d'un IAM rôle.

COPY customer FROM 's3://amzn-s3-demo-bucket/mydata' IAM_ROLE 'arn:aws:iam::0123456789012:role/MyRedshiftRole';

Pour plus d’informations sur d’autres options d’autorisation, consultez Paramètres d’autorisation

Si vous souhaitez valider vos données sans charger réellement le tableau, utilisez l'NOLOADoption associée à la COPY commande.

L’exemple suivant montre les toutes premières lignes des données, délimitées par une barre verticale, d’un fichier nommé venue.txt.

1|Toyota Park|Bridgeview|IL|0 2|Columbus Crew Stadium|Columbus|OH|0 3|RFK Stadium|Washington|DC|0

Avant de télécharger le fichier sur Amazon S3, divisez-le en plusieurs fichiers afin que la COPY commande puisse le charger à l'aide d'un traitement parallèle. Le nombre de fichiers doit être un multiple du nombre de tranches de votre cluster. Fractionnez vos fichiers de données de chargement de telle sorte que les fichiers soient à peu près de taille égale, entre 1 Mo et 1 Go après compression. Pour plus d'informations, consultez Chargement de données à partir de fichiers compressés et non compressés.

Par exemple, le fichier venue.txt peut être fractionné en quatre fichiers, comme suit :

venue.txt.1 venue.txt.2 venue.txt.3 venue.txt.4

La COPY commande suivante charge la VENUE table en utilisant les données délimitées par des canaux dans les fichiers de données avec le préfixe « venue » dans le compartiment Amazon S3. amzn-s3-demo-bucket

Note

Le compartiment Amazon S3 amzn-s3-demo-bucket des exemples suivants n’existe pas. Pour des exemples de COPY commandes utilisant des données réelles dans un compartiment Amazon S3 existant, consultez Charger des exemples de données.

COPY venue FROM 's3://amzn-s3-demo-bucket/venue' IAM_ROLE 'arn:aws:iam::0123456789012:role/MyRedshiftRole' DELIMITER '|';

Si aucun objet Amazon S3 avec le préfixe de clé ’venue’ n’existe, le chargement échoue.