16

Amazon Redshift から SQL ダンプを行う方法はありますか?

SQL ワークベンチ/J クライアントを使用できますか?

4

4 に答える 4

31

pg_dumpのスキーマは過去には機能しなかったかもしれませんが、現在は機能しています。

pg_dump -Cs -h my.redshift.server.com -p 5439 database_name > database_name.sql

CAVEAT EMPTOR: pg_dumpそれでもいくつかの postgres 固有の構文を生成し、テーブルの RedshiftSORTKEYDISTSTYLE定義も無視します。

別の適切なオプションは、公開された AWS 管理スクリプト ビューを使用して DDL を生成することです。SORTKEY/DISTSTYLE を処理しますが、すべての FOREIGN KEY のキャプチャに関してはバグがあることがわかり、テーブルの権限/所有者を処理しません。マイレージは異なる場合があります。

残念ながら、データ自体のダンプを取得するには、各テーブルでUNLOADコマンドを使用する必要があります。

これを生成する方法を次に示します。select *宛先テーブルの列の順序がソース テーブルと同じでない場合、構文が失敗することに注意してください。

select
  ist.table_schema,
  ist.table_name,
  'unload (''select col1,col2,etc from "' || ist.table_schema || '"."' || ist.table_name || '"'')
to ''s3://SOME/FOLDER/STRUCTURE/' || ist.table_schema || '.' || ist.table_name || '__''
credentials ''aws_access_key_id=KEY;aws_secret_access_key=SECRET''
delimiter as '',''
gzip
escape
addquotes
null as ''''
--encrypted
--parallel off
--allowoverwrite
;'
from information_schema.tables ist
where ist.table_schema not in ('pg_catalog')
order by ist.table_schema, ist.table_name
;
于 2015-01-08T15:32:15.113 に答える
4

現在、Redshift で Workbench/J をうまく使用しています。

ダンプに関しては、現時点では Redshift で利用できるスキーマ エクスポート ツールはありません (pg_dump は機能しません) が、データは常にクエリを介して抽出できます。

お役に立てれば幸いです。

編集: Workbench/J によって生成されたコードには、並べ替えキーや分散キーなどは反映されないことに注意してください。システムテーブルpg_table_defを見て、すべてのフィールドの情報を確認してください。フィールドが sortkey か distkey か、およびそのような情報を示します。そのテーブルのドキュメント:

http://docs.aws.amazon.com/redshift/latest/dg/r_PG_TABLE_DEF.html

于 2013-04-30T15:38:54.107 に答える
1

Mac を使用している場合、私は Postico を使用していますが、うまく機能します。テーブルを右クリックして、[エクスポート] をクリックします。

于 2016-05-02T16:49:40.777 に答える