In RedShift, è conveniente usare lo scaricamento/copia per spostare i dati su S3 e ricaricarli su redshift, ma ritengo sia difficile scegliere il delimitatore ogni volta. Il delimitatore giusto è rilevante per il contenuto della tabella! Ho dovuto cambiare il delimitatore ogni volta che ho incontrato errori di caricamento.Come scaricare/copiare in modo sicuro una tabella in RedShift?
Ad esempio, quando uso il seguente comando per scaricare/copiare una tabella:
unload ('select * from tbl_example') to 's3://s3bucket/tbl_example' CREDENTIALS 'aws_access_key_id=xxx;aws_secret_access_key=xxx' delimiter '|' addquotes allowoverwrite;
copy tbl_example2 from 's3://s3bucket/tbl_example' CREDENTIALS 'aws_access_key_id=xxx;aws_secret_access_key=xxx' delimiter '|' removequotes;
I otterrà errore carico se la tabella succede ad avere un campo con il suo contenuto come "||"
. Quindi devo cambiare il delimitatore '|' ad un altro come ',' e riprova, se sono sfortunato, forse ci vogliono più tentativi per ottenere un successo.
Mi chiedo se c'è un modo per scaricare/copiare una tabella redshift che è irrilevante per il contenuto della tabella, che non avrà mai successo quali strane stringhe sono memorizzate nella tabella.
E 'meglio non caricare i campi di testo libero a tutti. Perché vuoi campi come "commento" o "descrizione" in un DB analitico. Ci vorrà molto del tuo spazio su disco e avrai poco beneficio per le tue domande. – Guy