我想将一个表中的数据从Postgres数据库导出到Amazon S3。
我知道Redshift有一个选项可以将数据导出到S3 - 由于Redshift是一个基于Postgres的数据库,我尝试在我的Postgres数据库中使用相同的命令,但不成功。
有人能帮助我定期将表中的数据从Postgres导出到S3吗?
我想将一个表中的数据从Postgres数据库导出到Amazon S3。
我知道Redshift有一个选项可以将数据导出到S3 - 由于Redshift是一个基于Postgres的数据库,我尝试在我的Postgres数据库中使用相同的命令,但不成功。
有人能帮助我定期将表中的数据从Postgres导出到S3吗?
CREATE TABLE redshift_schema.redshift_table (...);
然后,在PostgreSQL RDS中创建外部数据包装器、服务器和表的虚拟幻影:CREATE EXTENSION redshift_fdw;
----optional
--CREATE FOREIGN DATA WRAPPER redshift_fdw
--HANDLER postgres_fdw_handler
--VALIDATOR postgres_fdw_validator
--OPTIONS ();
CREATE SERVER redshift_server_mydb
FOREIGN DATA WRAPPER redshift_fdw
OPTIONS (dbname 'mydb', port '5439', connect_timeout '200000', host 'myhost.redshift.amazonaws.com');
CREATE USER MAPPING FOR mypguser
SERVER redshift_server_mydb
OPTIONS (user 'myrsuser', password 'mypassword');
IMPORT FOREIGN SCHEMA redshift_schema
LIMIT TO (redshift_table)
FROM SERVER redshift_server_mydb
INTO postgresql_schema;
INSERT INTO postgresql_schema.redshift_table
SELECT *
FROM postgresql_schema.postgresql_table;
UNLOAD ('SELECT * FROM my_table') TO 's3://my-bucket/path' credentials 'aws_access_key_id=*****;aws_secret_access_key=*****' parallel off delimiter ',' ALLOWOVERWRITE ADDQUOTES HEADER ESCAPE gzip;
https://docs.aws.amazon.com/redshift/latest/dg/t_Unloading_tables.html https://docs.aws.amazon.com/redshift/latest/dg/r_UNLOAD_command_examples.html
要将数据从PostgreSQL RDS实例导出到S3,请使用aws_s3扩展:https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/postgresql-s3-export.html
CREATE EXTENSION aws_s3 CASCADE;
SELECT * from aws_s3.query_export_to_s3('select * from sample_table',
aws_commons.create_s3_uri('sample-bucket', 'sample-filepath', 'us-west-2')
);
COPY ... TO PROGRAM
- Craig Ringer复制到文件
和aws s3 cp文件到存储桶
。 - Vao Tsun