COPY - 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

Carica i dati in una tabella dai file di dati o da una tabella Amazon DynamoDB. I file possono trovarsi in un bucket Amazon Simple Storage Service (Amazon S3), un cluster Amazon EMR o un host remoto che accede tramite una connessione Secure Shell (SSH).

Nota

Le tabelle esterne di Amazon Redshift Spectrum sono di sola lettura. Non è possibile eseguire il comando COPY per una tabella esterna.

Il comando COPY aggiunge i nuovi dati di input come righe aggiuntive nella tabella.

La dimensione massima di una singola riga di input da qualsiasi origine è pari a 4 MB.

Autorizzazioni richieste

Per utilizzare il comando COPY, è necessario disporre del privilegio INSERT per la tabella Amazon Redshift.

Sintassi di COPY

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

È possibile eseguire un'operazione COPY con soli tre parametri: un nome di tabella, un'origine dati e l'autorizzazione per accedere ai dati.

Amazon Redshift estende la funzionalità del comando COPY per consentirti di caricare i dati in diversi formati di dati da diverse origini dati, controllare l'accesso per caricare i dati, gestire le trasformazioni di dati e gestire l'operazione di caricamento.

Le seguenti sezioni presentano i parametri obbligatori del comando COPY e raggruppano i parametri opzionali per funzione. Gli argomenti successivi descrivono ogni parametro e spiegano come interagiscono le diverse opzioni. Puoi anche andare direttamente alla descrizione di un parametro utilizzando un elenco alfabetico di parametri.

Parametri obbligatori

Il comando COPY necessita di tre elementi:

Il comando COPY più semplice utilizza il seguente formato.

COPY table-name FROM data-source authorization;

L'esempio seguente crea una tabella chiamata CATDEMO, poi carica la tabella con dati campione da un file di dati in Amazon S3 chiamato category_pipe.txt.

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

Nell'esempio seguente, l'origine dati per il comando COPY è un file di dati chiamato category_pipe.txt nella cartella tickit di un bucket Amazon S3 chiamato redshift-downloads. Il comando COPY è autorizzato ad accedere al bucket Amazon S3 tramite un ruolo AWS Identity and Access Management (IAM). Se il cluster possiede un ruolo IAM esistente per accedere ad Amazon S3 collegato, è possibile sostituire l'Amazon Resource Name (ARN) del ruolo nel comando COPY successivo ed eseguirlo.

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';

Per istruzioni complete su come utilizzare i comandi COPY per caricare dati di esempio, incluse istruzioni per caricare dati da altre AWS regioni, consulta Load Sample Data from Amazon S3 nella Amazon Redshift Getting Started Guide.

table-name

Il nome della tabella di destinazione per il comando COPY. La tabella deve esistere già nel database. La tabella può essere temporanea o persistente. Il comando COPY aggiunge i nuovi dati di input a tutte le righe esistenti nella tabella.

FROM data-source

La posizione dei dati di origine da caricare nella tabella di destinazione. È possibile specificare un file manifest con alcune origini dati.

Di solito, il repository dei dati più utilizzato è un bucket Amazon S3. Puoi anche caricare da file di dati che si trovano in un cluster Amazon EMR, un' EC2 istanza Amazon o un host remoto a cui il cluster può accedere utilizzando una connessione SSH oppure puoi caricare direttamente da una tabella DynamoDB.

Autorizzazione

Una clausola che indica il metodo utilizzato dal cluster per l'autenticazione e l'autorizzazione all'accesso ad altre risorse. AWS Il comando COPY richiede l'autorizzazione per accedere ai dati in un'altra AWS risorsa, tra cui Amazon S3, Amazon EMR, Amazon DynamoDB e Amazon. EC2 È possibile fornire tale autorizzazione referenziando il ruolo IAM collegato al cluster o fornendo l'ID chiave di accesso e la chiave di accesso segreta per un utente IAM.

Parametri facoltativi

È possibile specificare facoltativamente il modo in cui COPY mappa i dati dei campi in colonne nella tabella di destinazione, definire gli attributi dei dati di origine per consentire al comando COPY di leggere correttamente e analizzare i dati di origine e gestire le operazioni che il comando COPY deve eseguire durante il processo di caricamento.

Mappatura di colonne

Per impostazione predefinita, COPY inserisce i valori dei campi nelle colonne della tabella di destinazione nello stesso ordine in cui i campi si presentano nei file di dati. Se l'ordine predefinito delle colonne non funziona, puoi specificare un elenco di colonne o utilizzare JSONPath espressioni per mappare i campi di dati di origine alle colonne di destinazione.

Parametri del formato dei dati

È possibile caricare dati da file di testo in formato larghezza fissa, delimitato da caratteri, valori separati da virgole (CSV) o JSON o da file Avro.

Per impostazione predefinita, il comando COPY prevede che i dati di origine siano in file di testo UTF-8 delimitati da caratteri. Il delimitatore predefinito è una barra verticale ( | ). Se i dati di origine sono in un altro formato, utilizza i seguenti parametri per specificare il formato dei dati.

Parametri di conversione dei dati

Mentre carica la tabella, COPY tenta di convertire in modo implicito le stringhe nei dati di origine nel tipo di dati della colonna di destinazione. Se hai necessità di specificare una conversione diversa dal comportamento predefinito o se la conversione predefinita dà luogo a errori, è possibile gestire le conversioni dei dati specificando i seguenti parametri.

Operazioni di caricamento dati

Gestisce il comportamento predefinito dell'operazione di caricamento per la risoluzione dei problemi o per ridurre i tempi di caricamento specificando i seguenti parametri.

Note sull'utilizzo e risorse aggiuntive per il comando COPY

Per ulteriori informazioni su come utilizzare il comando COPY, consultare i seguenti argomenti:

Esempi di comando COPY

Per altri esempi che mostrano come eseguire COPY da varie origini, in formati diversi e con diverse opzioni di COPY, consulta Esempi di COPY.