How to save Amazon Redshift output to local CSV through SQL Workbench?

Cherry Wu picture Cherry Wu · May 22, 2017 · Viewed 14.2k times · Source

I am writing psql through Amazon Redshift and now I am trying to save the output as CSV through PSQL query, on SQL Workbench The reason I am planning to do this through query instead of using select clause and then right click to save the output as csv, is because there are large amount of data, I found that if I generate the output into a temp table, it's much much faster than using select to display all the output. Therefore, I am thinking whether saving to local CSV can be faster too.

I have tried the top solution here, however, it doesn't work on Amazon Redshift, When I am using Copy (SELECT col1, col2 FROM my_table) TO '[my local csv path]' WITH CSV DELIMITER ',';, or tried \Copy, it kept showing me

Amazon Invalid operation: syntax error at or near "("

or

Amazon Invalid operation: syntax error at or near "\"

Then I have checked Amazon Redshift query tutorial, didn't find any clause that could save the output to local CSV. It seems that COPY is to copy data from an Amazon data source to Redshift, UNLOAD is to save data to s3, but I just want to save the data on my local machine.

So, is there any way to save the Redshift output to my local CSV but with SQL Workbench?

Answer

Ravi picture Ravi · May 23, 2017

Yes there is, try this out.

PGPASSWORD=<password> psql -h <host> -d <db> -U <user> -p 5439-a -c "select * from <table>" -F '<delimiter>' -o temp.csv