Как импортировать файлы данных из s3 в postgresql rds

Я очень новичок в AWS и Postgresql.

  • Я создал Postgresql db (используя rds on was)
  • Я загрузил несколько документов в несколько кодов s3
  • У меня есть EC2 (Amazon Linux 64 бит), работающий

Я попытался использовать конвейер данных, но ничего не найдено (шаблон) для Postgres. Я не могу понять, как подключиться к моему экземпляру RDS и импортировать/экспортировать данные из postgres.

Я предположил, что могу использовать EC2 для захвата из своего ведра S3 и импорта в Postgres вместо шаблона конвейера данных, доступного. Если возможно, я понятия не имею, как.. Просьба сообщить, если возможно..

Ответ 1

Я хочу, чтобы AWS расширяет команду COPY в RDS Postgresql, как в Redshift. Но пока они этого не сделали, и мы должны сделать это сами.

  • Установите awscli в свой блок EC2 (возможно, он был установлен по умолчанию)
  • Настройте свой awscli с учетными данными
  • Используйте команды aws s3 sync или aws s3 cp для загрузки из s3 в локальный каталог
  • Используйте команду psql для \COPY файлов в вашем RDS (требуется \ для копирования из каталога клиента)

Пример:

aws s3 cp s3://bucket/file.csv /mydirectory/file.csv
psql -h your_rds.amazonaws.com -U username -d dbname -c '\COPY table FROM ''file.csv'' CSV HEADER'

Ответ 2

Предыдущие ответы были заменены более поздними событиями в AWS.

В настоящее время существует превосходная поддержка загрузки базы данных S3 в RDS через службу конвейера данных (которая также может использоваться для многих других задач преобразования данных, это только один пример).

Эта статья AWS предназначена для S3-to-RDS-MySQL. Должно быть очень похоже на RDS-Postgres.

http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-template-copys3tords.html

Ответ 3

S3 → Прямая загрузка RDS теперь возможна для PostgreSQL Aurora и RDS PostgreSQL> = 11.1 в aws_s3 расширения aws_s3.

Параметры аналогичны командам PostgreSQL COPY

psql=> SELECT aws_s3.table_import_from_s3(
 'table_name', '', '(format csv)',
 'BUCKET_NAME', 'path/to/object', 'us-east-2'
);

Имейте в виду, что эта функция не работает для более старых версий.

Ответ 4

если вы можете запустить клиент psql и подключиться к RDS на экземпляре EC2, вы должны иметь возможность использовать следующую команду:

\ копировать customer_orders из 'myfile.csv' с помощью DELIMITER ','