Как импортировать файл данных PostgreSQL в Amazon redshift

Я пытаюсь импортировать файл данных PostgreSQL в Amazon redshift с помощью командной строки. Я импортировал файл схемы, но не могу импортировать файл данных. Кажется, что вставка данных в amazon redshift немного отличается.

Я хочу знать все способы импорта файла данных в красное смещение с помощью командной строки.

ОБНОВЛЕНИЕ

Мой файл данных выглядит так:

COPY actor (actor_id, first_name, last_name, last_update) FROM stdin; 
0 Chad Murazik 2014-12-03 10:54:44
1 Nelle Sauer 2014-12-03 10:54:44
2 Damien Ritchie 2014-12-03 10:54:44
3 Casimer Wiza 2014-12-03 10:54:44
4 Dana Crist 2014-12-03 10:54:44
....

Я набрал следующую команду из интерфейса командной строки:

PGPASSWORD=**** psql -h testredshift.cudmvpnjzyyy.us-west-2.redshift.amazonaws.com -p 5439 -U abcd -d pagila -f /home/jamy/Desktop/pag_data.sql`

А потом появилась ошибка вроде:

ОШИБКА: источник ЗАГРУЗКИ не поддерживается. (Подсказка: разрешена только загрузка на основе S3, DynamoDB или EMR.


person Zahidul Islam Jamy    schedule 15.05.2015    source источник
comment
Что вы имеете в виду под файлом данных? Это файл с операторами SQL INSERT? CSV? Выход из pg_dump?   -  person Patrick    schedule 15.05.2015
comment
вывод из pg_dump, например: КОПИРОВАТЬ участника (идентификатор_актера, имя_последнего_имя, последнее_обновление) ИЗ stdin; 0 Чад Муразик 03.12.2014 10:54:44 1 Нелле Зауэр 2014-12-03 10:54:44 2 Дэмиен Ритчи 03.12.2014 10:54:44 3 Касимер Виза 03.12.2014 10:54 : 44 4 Дана Крист 2014-12-03 10:54:44   -  person Zahidul Islam Jamy    schedule 15.05.2015
comment
всевозможными способами? Есть бесконечные пути. Но я думаю, это похоже на то, что вы хотите просто скармливать дамп в psql. Другие варианты включают pg_restore, команду COPY или использование инструмента ETL, такого как Talend Studio, Pentaho Kettle или CloverETL. В любом случае, что за сообщение об ошибке?   -  person Craig Ringer    schedule 15.05.2015
comment
команда: PGPASSWORD = **** psql -h testredshift.cudmvpnjzyyy.us-west-2.redshift.amazonaws.com -p 5439 -U abcd -d pagila -f /home/jamy/Desktop/pag_data.sql ОШИБКА: ЗАГРУЗИТЬ источник не поддерживается. (Подсказка: разрешена только загрузка на основе S3 или DynamoDB или EMR) @CraigRinger   -  person Zahidul Islam Jamy    schedule 15.05.2015


Ответы (2)


Выгрузите свою таблицу в формате CSV:

\copy <your_table_name> TO 'dump_fulename.csv' csv header NULL AS '\N'

Загрузите его в S3 и прочтите с красного смещения, используя:

COPY schema.table FROM 's3:/...' WITH CREDENTIALS '...' CSV;

Источник: Импорт данных в Redshift из MySQL и Postgres

person Adam Matan    schedule 19.05.2015

Вы не можете использовать pg_dump: выгрузить все свои данные в s3 и использовать команду копирования, чтобы загрузить их в Redshift. Это частая ошибка.

person Yuri Levinsky    schedule 19.05.2015
comment
Есть ли другой способ?? это выглядит немного сложным - person Zahidul Islam Jamy; 19.05.2015
comment
Этот самый эффективный. Вы можете использовать postgresql dblink или написать свой appp. - person Yuri Levinsky; 19.05.2015