COPY da Amazon S3 - Amazon Redshift

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à.

COPY da Amazon S3

Per caricare dati da file ubicati in uno o più bucket S3, utilizzare la clausola FROM per indicare il modo in cui COPY individua i file in Amazon S3. È possibile fornire il percorso dell'oggetto ai file di dati come parte della clausola FROM, oppure è possibile fornire la posizione di un file manifest che contiene un elenco di percorsi dell'oggetto Amazon S3. COPY da Amazon S3 utilizza una connessione HTTPS. Assicurati che gli intervalli IP S3 siano aggiunti all'elenco di indirizzi consentiti. Per ulteriori informazioni sugli intervalli IP S3 richiesti, consulta Isolamento di rete.

Importante

Se i bucket Amazon S3 che contengono i file di dati non risiedono nella stessa AWS regione del cluster, devi utilizzare il REGION parametro per specificare la regione in cui si trovano i dati.

Sintassi

FROM { 's3://objectpath' | 's3://manifest_file' } authorization | MANIFEST | ENCRYPTED | REGION [AS] 'aws-region' | optional-parameters

Esempi

Nell'esempio seguente viene utilizzato un percorso oggetto per caricare dati da Amazon S3.

copy customer from 's3://mybucket/customer' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole';

Nell'esempio seguente viene utilizzato un file manifest per caricare dati da Amazon S3.

copy customer from 's3://mybucket/cust.manifest' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' manifest;

Parametri

FROM

L'origine dei dati da caricare. Per ulteriori informazioni sulla codifica del file Amazon S3, consultare Parametri di conversione dei dati.

's3://copy_from_s3_objectpath'

Specifica il percorso degli oggetti Amazon S3 che contengono i dati, ad esempio 's3://mybucket/custdata.txt'. Il parametro s3://copy_from_s3_objectpath può fare riferimento a un singolo file o a un insieme di oggetti o cartelle che hanno lo stesso prefisso della chiave. Ad esempio, il nome custdata.txt è un prefisso della chiave che si riferisce a un certo numero di file fisici: custdata.txt,custdata.txt.1, custdata.txt.2, custdata.txt.bak e così via. Il prefisso della chiave può anche fare riferimento a un certo numero di cartelle. Ad esempio 's3://mybucket/custfolder' fa riferimento alle cartelle custfolder, custfolder_1, custfolder_2 e così via. Se un prefisso della chiave fa riferimento a più cartelle, vengono caricati tutti i file in esse contenuti. Se un prefisso della chiave corrisponde sia a un file sia a una cartella, come custfolder.log, COPY tenta di caricare anche il file. Se un prefisso della chiave può causare il tentativo da parte di COPY di caricare i file indesiderati, utilizzare un file manifest. Per ulteriori informazioni, consultare copy_from_s3_manifest_file.

Importante

Se il bucket S3 che contiene i file di dati non si trova nella stessa AWS regione del cluster, devi utilizzare il REGION parametro per specificare la regione in cui si trovano i dati.

Per ulteriori informazioni, consulta Caricamento di dati da Amazon S3.

's3://copy_from_s3_manifest_file'

Specifica la chiave oggetto Amazon S3 per un file manifest che elenca i file di dati da caricare. L'argomento 's3://copy_from_s3_manifest_file' deve fare esplicito riferimento a un singolo file, ad esempio, 's3://mybucket/manifest.txt'. Non può fare riferimento a un prefisso della chiave.

Il manifest è un file di testo in formato JSON che elenca l'URL di ciascun file che deve essere caricato da Amazon S3. L'URL include il nome del bucket e il percorso completo dell'oggetto per il file. I file specificati nel manifesto possono trovarsi in diversi bucket, ma tutti i bucket devono trovarsi nella stessa AWS regione del cluster Amazon Redshift. Se un file viene elencato due volte, viene caricato due volte. L'esempio seguente mostra il JSON per un manifest che carica tre file.

{ "entries": [ {"url":"s3://mybucket-alpha/custdata.1","mandatory":true}, {"url":"s3://mybucket-alpha/custdata.2","mandatory":true}, {"url":"s3://mybucket-beta/custdata.1","mandatory":false} ] }

I caratteri delle virgolette doppie sono obbligatori e devono essere virgolette semplici (0x22), non oblique o "intelligenti". Ogni accesso al manifest può facoltativamente includere un flag mandatory. Se mandatory è impostato come true, COPY termina se non trova il file per quella voce; altrimenti COPY continuerà. Il valore predefinito per mandatory è false.

Quando si carica da file di dati in formato ORC o Parquet, è necessario un campo meta, come mostrato nell'esempio seguente.

{ "entries":[ { "url":"s3://mybucket-alpha/orc/2013-10-04-custdata", "mandatory":true, "meta":{ "content_length":99 } }, { "url":"s3://mybucket-beta/orc/2013-10-05-custdata", "mandatory":true, "meta":{ "content_length":99 } } ] }

Il file manifest non deve essere crittografato o compresso, anche se sono specificate le opzioni ENCRYPTED, GZIP, LZOP, BZIP2 o ZSTD. COPY restituisce un errore se il file manifest specificato non viene trovato o non viene formato correttamente.

Se si utilizza un file manifest, il parametro MANIFEST deve essere specificato con il comando COPY. Se il parametro MANIFEST non è specificato, COPY presuppone che il file specificato con FROM sia un file di dati.

Per ulteriori informazioni, consulta Caricamento di dati da Amazon S3.

authorization

Il comando COPY necessita dell'autorizzazione per accedere ai dati in un'altra risorsa AWS , incluso in Amazon S3, Amazon EMR, Amazon DynamoDB e Amazon EC2. Puoi fornire tale autorizzazione facendo riferimento a un ruolo AWS Identity and Access Management (IAM) collegato al cluster (controllo degli accessi basato sui ruoli) o fornendo le credenziali di accesso per un utente (controllo degli accessi basato su chiavi). Per una maggiore sicurezza e flessibilità, consigliamo di utilizzare il controllo degli accessi basato sui ruoli IAM. Per ulteriori informazioni, consulta Parametri di autorizzazione.

MANIFEST

Specifica che un manifest viene utilizzato per identificare i file di dati da caricare da Amazon S3. Se si utilizza il parametro MANIFEST, COPY carica i dati dai file elencati nel manifesto a cui fa riferimento 's3://copy_from_s3_manifest_file'. Se il file manifest non viene trovato o non è formato correttamente, COPY non va a buon fine. Per ulteriori informazioni, consulta Utilizzo di un manifest per specificare i fili di dati.

ENCRYPTED

Una clausola che specifica che i file di input su Amazon S3 sono crittografati utilizzando la crittografia lato client con chiavi simmetriche gestite dal cliente. Per ulteriori informazioni, consulta Caricamento di file di dati crittografati da Amazon S3. Non specificare ENCRYPTED se i file di input sono crittati utilizzando la crittografia lato server di Amazon S3 (SSE-KMS o SSE-S3). COPY legge automaticamente i file crittati lato server.

Se specifichi il parametro ENCRYPTED, devi anche specificare il parametro MASTER_SYMMETRIC_KEY o includere il valore master_symmetric_key nella stringa CREDENTIALS.

Se i file crittografati sono in formato compresso, aggiungi il parametro GZIP, LZOP, BZIP2 o ZSTD.

I file manifest e JSONPath non devono essere crittografati, anche se è specificata l'opzione ENCRYPTED.

MASTER_SYMMETRIC_KEY 'root_key'

La chiave master simmetrica era utilizzata per crittografare i file di dati su Amazon S3. Se è specificato MASTER_SYMMETRIC_KEY, è necessario specificare anche il parametro ENCRYPTED. MASTER_SYMMETRIC_KEY non può essere utilizzato con il parametro CREDENTIALS. Per ulteriori informazioni, consulta Caricamento di file di dati crittografati da Amazon S3.

Se i file crittografati sono in formato compresso, aggiungi il parametro GZIP, LZOP, BZIP2 o ZSTD.

REGION [AS] 'aws-region'

Speciifica la AWS regione in cui si trovano i dati di origine. REGION è obbligatorio per COPY da un bucket Amazon S3 o una tabella DynamoDB quando la risorsa AWS che contiene i dati non si trova nella stessa regione del cluster Amazon Redshift.

Il valore per aws_region deve corrispondere a una regione elencata nella tabella Regioni ed endpoint di Amazon Redshift.

Se viene specificato il parametro REGION, tutte le risorse, compresi un file manifest o più bucket Amazon S3 devono trovarsi nella regione specificata.

Nota

Il trasferimento di dati tra regioni comporta costi aggiuntivi a carico del bucket Amazon S3 o della tabella DynamoDB che contiene i dati. Per ulteriori informazioni sui prezzi, consulta Data Transfer OUT da Amazon S3 a un'altra AWS regione nella pagina dei prezzi di Amazon S3 e Data Transfer OUT nella pagina dei prezzi di Amazon DynamoDB.

Per impostazione predefinita, COPY presuppone che i dati si trovino nella stessa regione del cluster Amazon Redshift.

Parametri facoltativi

Facoltativamente è possibile specificare i seguenti parametri con COPY da Amazon S3:

Parametri non supportati

Non è possibile utilizzare i seguenti parametri con COPY da Amazon S3:

  • SSH

  • READRATIO