Пожалуйста, пожалуйста, ПРЕКРАТИТЕ пометить ваши вопросы как PostgreSQL, так и Greenplum. Ответ на ваш вопрос очень отличается, если вы используете Greenplum против PostgreSQL. Я не могу подчеркнуть это достаточно.
Если вы используете Greenplum, вам следует использовать протокол S3 во внешних таблицах для чтения и записи данных в S3.
Итак, ваш стол:
select * from my_table;
А ваш внешний стол:
CREATE EXTERNAL TABLE ext_my_table (LIKE my_table)
LOCATION ('s3://s3_endpoint/bucket_name')
FORMAT 'TEXT' (DELIMITER '|' NULL AS '' ESCAPE AS E'\\');
А потом записываете в ваше ведро s3:
INSERT INTO ext_my_table SELECT * FROM my_table;
Вам потребуется выполнить некоторую настройку в кластере Greenplum, чтобы у вас также был файл конфигурации s3. Это также относится к каждому сегменту каталога.
gpseg_data_dir/gpseg-prefixN/s3/s3.conf
Пример содержимого файла:
[default]
secret = "secret"
accessid = "user access id"
threadnum = 3
chunksize = 67108864
Более подробную информацию о S3 можно найти здесь: http://gpdb.docs.pivotal.io/5100/admin_guide/external/g-s3-protocol.html#amazon-emr__s3_config_file