sql >> Databáze >  >> RDS >> Mysql

Existuje způsob, jak provést výpis SQL z Amazon Redshift

pg_dump schémat možná v minulosti nefungovalo, ale nyní ano.

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

CAVEAT EMPTOR: pg_dump stále produkuje určitou postgresovou specifickou syntaxi a také zanedbává Redshift SORTKEY a DISTSTYLE definice pro vaše tabulky.

Další slušnou možností je použít publikovaný AWS zobrazení administrátorského skriptu pro generování vašeho DDL. Zvládá SORTKEY/DISTSTYLE, ale zjistil jsem, že je to buggy, pokud jde o zachycení všech CIZÍCH KLÍČŮ, a nezpracovává oprávnění/vlastníky tabulky. Vaše kilometry se mohou lišit.

Chcete-li získat výpis samotných dat, stále musíte použít UNLOAD příkaz bohužel na každém stole.

Zde je způsob, jak jej vygenerovat. Uvědomte si, že select * syntaxe selže, pokud cílová tabulka nemá stejné pořadí sloupců jako zdrojová tabulka:

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. .NET Core 2.1 Identity získá všechny uživatele s jejich přidruženými rolemi

  2. Jak odstranit revize příspěvků pomocí WP-CLI

  3. Doplňte řetězec úvodními nulami, aby měl v SQL Server 2008 3 znaky

  4. Vyhněte se uzamčení databázového dodavatele pro MySQL nebo MariaDB