pg_dump
過去には機能していなかったスキーマもありますが、現在は機能しています。
pg_dump -Cs -h my.redshift.server.com -p 5439 database_name > database_name.sql
警告エンプター: pg_dump
まだいくつかのpostgres固有の構文を生成し、Redshift SORTKEY
も無視します およびDISTSTYLE
テーブルの定義。
もう1つの適切なオプションは、公開された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
;