2015-03-01 28 views
12

Esiste un'opzione per caricare un CSV in Redshift con un'intestazione? Vedo la documentazione per CSV ma non dice nulla su un'intestazione. Idealmente potrebbe usare l'intestazione per determinare le colonne da caricare.Carica CSV in Redshift, con intestazione?

+0

Con CSV l'intestazione non è utile, ma se si utilizza JSON è più descrittivo: http://docs.aws.amazon.com/redshift/latest/dg/copy- usage_notes-copy-from-json.html – Guy

risposta

22

Utilizzare l'opzione IGNOREHEADER 1 quando si utilizza il comando COPY:

IGNOREHEADER [AS] number_rows

Tratta le specificati number_rows come intestazione del file e non li caricare. Utilizzare IGNOREHEADER per saltare le intestazioni di file in tutti i file in un carico parallelo.

See: Amazon Redshift COPY command documentation

+2

C'è un modo per farlo usare l'intestazione per sapere quali colonne caricare? Idealmente, potrei semplicemente dire LOAD mytable FROM myfile.csv USING HEADER FOR COLUMNS, o qualcosa del genere. –

+1

No, l'intestazione non verrà utilizzata per identificare le colonne. È necessario fornire i nomi delle colonne come parte del comando COPY e verranno caricati nell'ordine fornito nel file. –

+0

E 'stato chiaro dal dococ ma dopo aver sperimentato ho trovato che il formato è 'COPY schema.table DA .... CREDENZIALI ...... IGNOREHEADER 1'. Non dimenticare l'1 (saltare una riga) –