Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Utilizzo del COPY comando per il caricamento da Amazon S3
Utilizzare il comando COPY per caricare una tabella in parallelo dai file di dati in Amazon S3. È possibile specificare i file da caricare tramite il prefisso di un oggetto Amazon S3 o un file manifest.
La sintassi per specificare un file caricare tramite un prefisso è la seguente.
COPY <table_name> FROM 's3://<bucket_name>/<object_prefix>' authorization;
Il file manifest è un file in JSON formato elettronico che elenca i file di dati da caricare. La sintassi per specificare un file caricare tramite un file manifest è la seguente.
COPY <table_name> FROM 's3://<bucket_name>/<manifest_file>' authorization MANIFEST;
La tabella da caricare deve esistere già nel database. Per informazioni sulla creazione di una tabella, consultate la sezione CREATE TABLE Reference. SQL
I valori per l'autorizzazione forniscono l' AWS autorizzazione necessaria ad Amazon Redshift per accedere agli oggetti Amazon S3. Per informazioni sulle autorizzazioni richieste, consultare IAMautorizzazioni per, e COPY UNLOAD CREATE LIBRARY. Il metodo preferito per l'autenticazione consiste nello specificare il ROLE parametro IAM _ e fornire Amazon Resource Name (ARN) per un IAM ruolo con le autorizzazioni necessarie. Per ulteriori informazioni, consulta Controllo degli accessi basato sui ruoli.
Per autenticarti utilizzando il ROLE parametro IAM _, sostituisci <aws-account-id>
e <role-name>
come illustrato nella sintassi seguente.
IAM_ROLE 'arn:aws:iam::
<aws-account-id>
:role/<role-name>
'
L'esempio seguente mostra l'autenticazione tramite un IAM ruolo.
COPY customer FROM 's3://amzn-s3-demo-bucket/mydata' IAM_ROLE 'arn:aws:iam::0123456789012:role/MyRedshiftRole';
Per ulteriori informazioni su altre opzioni di autorizzazione, consulta Parametri di autorizzazione
Se desideri convalidare i dati senza caricare effettivamente la tabella, usa l'NOLOADopzione con il COPY comando.
L'esempio seguente mostra le prime righe di dati delimitati da barra verticale in un file denominato venue.txt
.
1|Toyota Park|Bridgeview|IL|0 2|Columbus Crew Stadium|Columbus|OH|0 3|RFK Stadium|Washington|DC|0
Prima di caricare il file su Amazon S3, suddividi il file in più file in modo che COPY il comando possa caricarlo utilizzando l'elaborazione parallela. Il numero di file deve essere un multiplo del numero di sezioni nel cluster. Suddividi i file di dati di caricamento di modo che siano all'incirca della stessa dimensione, tra 1 MB e 1 GB dopo la compressione. Per ulteriori informazioni, consulta Caricamento dei dati da file compressi e non compressi.
Ad esempio, il file venue.txt
può essere diviso in quattro file, come segue:
venue.txt.1 venue.txt.2 venue.txt.3 venue.txt.4
Il COPY comando seguente carica la VENUE tabella utilizzando i dati delimitati da pipe nei file di dati con il prefisso 'venue' nel bucket Amazon S3. amzn-s3-demo-bucket
Nota
Il bucket Amazon S3 amzn-s3-demo-bucket
nei seguenti esempi non esiste. Per COPY i comandi di esempio che utilizzano dati reali in un bucket Amazon S3 esistente, consulta Caricare dati di esempio.
COPY venue FROM 's3://amzn-s3-demo-bucket/venue' IAM_ROLE 'arn:aws:iam::0123456789012:role/MyRedshiftRole' DELIMITER '|';
Se non esiste alcun oggetto Amazon S3 con prefisso della chiave 'venue', il caricamento non riesce.