2017-05-22 3 views
0

私はAmazon Redshiftでpsqlを書いていますが、今はSQL WorkBench上のPSQLクエリを使ってCSVとして出力を保存しようとしています select節を使用せずにクエリでこれを実行し、 csvとして出力すると、大量のデータがあるため、私は一時テーブルに出力を生成すると、すべての出力を表示するのにselectを使用するよりはるかに高速です。したがって、私はローカルCSVへの保存も高速化できるかどうか考えています。SQL WorkBenchでAmazon Redshiftの出力をPSQL経由でローカルCSVに保存するには?

は私がCopy (SELECT col1, col2 FROM my_table) TO '[my local csv path]' WITH CSV DELIMITER ',';を使用していた場合hereが、しかし、それはアマゾン赤方偏移、上では動作しませんトップソリューションを試してみました、または\Copyを試してみました、それは私に示し続け

アマゾン無効な操作:構文エラーでまたは近い "("

または

アマゾン無効な操作:構文エラーまたはその近く "\"

次に、Amazon Redshift query tutorialにチェックして、ローカルCSVへの出力を保存できる節が見つかりませんでした。 COPYは、AmazonデータソースからRedshiftにデータをコピーすることです。UNLOADはデータをs3に保存することですが、ローカルマシンにデータを保存したいだけです。

ので、PSQLてますが、SQLワークベンチに私のローカルCSVに赤方偏移出力を保存する方法はありますか?

答えて

1

WbExport -type=text 
     -file='C:\Downloads\myData.txt' 
     -delimiter='\t' 
     -decimal=',' 
     -dateFormat='yyyy-MM-dd'; 
select a, b ,c from myTable; 

WbExport -type=text 
    -file='C:\Downloads\myQuery.txt' 
    -delimiter='\t' 
    -header=true 
    -tableWhere="WHERE a is not null and date between 11/11/11 and 22/22/22" 
    -sourcetable=mytable; 
+0

私はあなたのソリューションに軽微な変更を加え、最終的に私のために働きます。 '-dateFormat = 'yyyy-MM-dd'の後に'; 'を追加できますか?それ以外の場合は動作しません。どうもありがとうございました! –

1

はい、これを試してください。

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

はどうもありがとうございましワークベンチで、次のいずれかを実行してみてください!私のデータは一時テーブルで、私はSQL WorkBenchで作業しています。この場合、ターミナルを使用することはできません。私はこの質問に「SQL WorkBench」を使用していると付け加えました。 SQL Workbenchを使用してpsqlクエリを作成し、出力をローカルCSVに保存する方法はありますか? –

+0

私はツールの使用法について専門家はいませんが、ワークベンチで結果セットを取得したら、メニューオプションのData - > Save Data As - >?、Btwを使用してデータを保存できます。redshiftはすべてのpostgresの読み込み方法をサポートしていません。アンロード – Ravi

+0

私は「選択」句が永遠にそこに走っている可能性があるので、作業台を使って「別名で保存」を使用することはできませんでしたが、ファイルを保存する方がはるかに高速になる可能性があります。お手伝いありがとう! –

関連する問題