Estoy tratando de descargar una tabla de datos de la base de datos de Postgres en Amazon S3.
Soy consciente de que redshift tiene la opción de descargar en s3: dado que redshift es una base de datos de postgres, intenté usar el mismo comando en mi base de datos de postgres pero no tuve éxito.
¿Puede alguien ayudarme a descargar datos de tablas de postgres a s3 periódicamente?
Redshift se basa en un clon de PostgreSQL pero no hay una correspondencia de características 1-1. Si desea cargar datos de una base de datos PostgreSQL a Redshift, a través de S3, debe:
En Redshift puedes crear una tabla para recibir los datos:
CREATE TABLE redshift_schema.redshift_table (...);
Luego, cree un contenedor de datos externos, un servidor y un fantasma virtual de la tabla en 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;Ahora en PostgreSQL puede (en una función si lo desea) cargar (seleccionar, insertar, actualizar, eliminar) la tabla Redshift de la tabla PostgreSQL (sin usar dblink):
INSERT INTO postgresql_schema.redshift_table SELECT * FROM postgresql_schema.postgresql_table;Ahora, cuando mira la tabla Redshift, todos los datos están allí y puede DESCARGAR la tabla en S3 según sea necesario.
Usé el siguiente fragmento de código para eso:
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;Puedes consultar también los siguientes enlaces:
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