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?
risposta
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.
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. –
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. –
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) –
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