Как импортировать файлы данных из 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 ','