Amazon Redshift에서 SQL 덤프를 수행하는 방법이 있습니까?Amazon Redshift에서 SQL 덤프를 수행하는 방법이 있습니까
SQL Workbench/J 클라이언트를 사용할 수 있습니까?
Amazon Redshift에서 SQL 덤프를 수행하는 방법이 있습니까?Amazon Redshift에서 SQL 덤프를 수행하는 방법이 있습니까
SQL Workbench/J 클라이언트를 사용할 수 있습니까?
현재 Redshift에서는 Workbench/J successfuly를 사용하고 있습니다.
덤프의 경우 Redshift에서 사용할 수있는 스키마 내보내기 도구가 없습니다 (pg_dump가 작동하지 않음). 데이터는 항상 쿼리를 통해 추출 할 수 있지만
도움을 받으십시오.
EDIT : 정렬 및 분배 키와 같은 것은 Workbench/J에서 생성 된 코드에 반영되지 않습니다. 모든 필드에 대한 정보를 보려면 시스템 테이블 pg_table_def
을보십시오. 필드가 sortkey 또는 distkey인지, 그런 정보인지를 나타냅니다. 해당 테이블에 문서 : 스키마의
http://docs.aws.amazon.com/redshift/latest/dg/r_PG_TABLE_DEF.html
나는 Workbench/J를 성공적으로 사용하고 있으며 작동하는지 확인할 수 있습니다. –
pg_dump가 작동하지 않는다는 이유를 확신 할 수 없습니다. Workbench/J에 대해 언급했듯이 distkey/sortkey가 포함되지 않았지만 나에게 잘 작동한다. – congusbongus
pg_dump
과거에 근무하지 않을 수 있습니다,하지만 지금 않습니다.
pg_dump -Cs -h my.redshift.server.com -p 5439 database_name > database_name.sql
주의의 위험 부담은 :pg_dump
여전히 포스트 그레스에게 특정 구문을 생성하고, 또한 테이블의 적색 편이 SORTKEY
및 DISTSTYLE
정의를 무시한다.
DDL 생성을위한 또 다른 적절한 옵션은 use the published AWS admin script views입니다. SORTKEY/DISTSTYLE을 처리하지만 모든 외래 키를 캡처 할 때 버그가 있음을 발견했으며 테이블 권한/소유자를 처리하지 않습니다. 귀하의 마일리지는 다를 수 있습니다.
데이터 자체를 덤프하려면 불행하게도 각 테이블에서 UNLOAD
command을 사용해야합니다.
생성 방법은 다음과 같습니다. Mac을 사용하는 경우
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
;
실제로 pg_dump가 작동합니다. – gauravphoenix
, 내가 Postico을 사용하고 있는데 그것을 잘 작동 : 대상 테이블이 소스 테이블과 같은 열 순서가없는 경우 select *
구문이 실패 할주의하십시오. 표를 마우스 오른쪽 버튼으로 클릭하고 내보내기를 클릭하십시오.
예, 여러 가지 방법으로 변경할 수 있습니다.
S3 Bucket에 UNLOAD()가 가장 좋습니다. 거의 모든 다른 컴퓨터에서 데이터를 가져올 수 있습니다. (자세한 정보는 여기 : http://docs.aws.amazon.com/redshift/latest/dg/r_UNLOAD.html)
보유하고있는 Linux 인스턴스를 사용하여 테이블 내용을 데이터 파일로 파이프하십시오. 그래서, 실행 중 :
$> psql -t -A -F 'your_delimiter'-h '호스트 이름'-d '데이터베이스'-U 'user -c "select * from myTable">>/home/userA/tableDataFile 당신을 위해 트릭을 할 것입니다.
다음은 주제에 대한 Amazonian의 의견입니다. https://forums.aws.amazon.com/message.jspa?messageID = 428466 # 428466 –