Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Có cách nào để thực hiện kết xuất SQL từ Amazon Redshift không

pg_dump lược đồ có thể không hoạt động trong quá khứ, nhưng bây giờ thì có.

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

CAVEAT EMPTOR: pg_dump vẫn tạo ra một số cú pháp cụ thể của postgres và cũng bỏ qua Redshift SORTKEYDISTSTYLE định nghĩa cho các bảng của bạn.

Một tùy chọn phù hợp khác là sử dụng AWS đã xuất bản chế độ xem tập lệnh quản trị để tạo DDL của bạn. Nó xử lý SORTKEY / DISTSTYLE, nhưng tôi thấy nó có lỗi khi nắm bắt tất cả các FOREIGN KEY và không xử lý quyền / chủ sở hữu bảng. Số tiền của bạn có thể thay đổi.

Để lấy chính dữ liệu kết xuất, bạn vẫn cần sử dụng UNLOAD lệnh trên mỗi bàn không may.

Đây là một cách để tạo ra nó. Lưu ý rằng select * cú pháp sẽ không thành công nếu bảng đích của bạn không có cùng thứ tự cột với bảng nguồn của bạn:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chuyển đổi tập lệnh MS SQL sang Mysql và Oracle

  2. Máy tính để bàn Java - làm cách nào để tách quyền truy cập cơ sở dữ liệu khỏi chuỗi giao diện người dùng?

  3. tối ưu hóa truy vấn số lượng mysql

  4. 20-30 kết nối mysql đồng thời khiến RDS tăng đột biến trên 80%

  5. Làm thế nào để kiểm tra (hoặc thậm chí thiết lập) đối chiếu trong tệp mdb (truy cập ms)?