sql >> データベース >  >> RDS >> Mysql

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

    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
    ;
    


    1. mysqlでクライアントIPアドレスを取得します

    2. OracleのRANK()関数とDENSE_RANK()関数の違いは何ですか?

    3. Oracle SQL&PL / SQLとは何ですか?初心者が知っておくべきことすべて

    4. SQLServerでのデータベーススキーマの使用