Копирование данных из S3 в Redshift зависает - PullRequest
0 голосов
/ 21 ноября 2018

Я пытался загрузить данные в Redshift за последние пару дней, но безуспешно.Я предоставил правильную роль IAM для кластера, я дал доступ к S3, я использую команду COPY с учетными данными AWS или ролью IAM и пока безуспешно.В чем может быть причина этого?Дело дошло до того, что у меня осталось не так много вариантов.

Так что код довольно простой, ничего особенного.См. Ниже:

copy test_schema.test from 's3://company.test/tmp/append.csv.gz' 
iam_role 'arn:aws:iam::<rolenumber>/RedshiftCopyUnload'
delimiter ',' gzip;

Я не помещал никаких сообщений об ошибках, потому что их нет.Код просто зависает, и я оставляю его работать более 40 минут безрезультатно.Если я зайду в раздел «Запросы» в Redshift, я не увижу ничего ненормального.Я использую Aginity и SQL Workbench для выполнения запросов.

Я также пытался вручную вставлять запросы в Redshift и кажется, что это работает.COPY и UNLOAD не работают, и хотя я создал роли с доступом к S3 и связан с кластером, я все еще получаю эту проблему.

Мысли?

РЕДАКТИРОВАТЬ: Решение найдено.В основном это была проблема с подключением в нашем VPC.Конечная точка VPC должна была быть создана и связана с подсетью, используемой Redshift.

1 Ответ

0 голосов
/ 21 ноября 2018

Я согласен с JohnRotenstein в том, что для получения ответа необходима дополнительная информация.Я бы предложил вам взять простые данные и простые таблицы.Вот пошаговое решение, надеюсь, сделав это, вы сможете решить свою проблему.

Предположим, здесь структура вашей таблицы.

Здесь я делаю большую частьтипы данных, чтобы доказать мою точку зрения.создать таблицу продаж (salesid integer, десятичное значение комиссии (8,2), дата продажи, описание varchar (255), метка времени по умолчанию, метка create_at по умолчанию, метка времени updated_at);

Для простоты, вот ваш файл данныхнаходится в S3.
Содержимое в CSV (sales-example.txt)

salesid,commission,saledate,description,created_at,updated_at
1|3.55|2018-12-10|Test description|2018-05-17 23:54:51|2018-05-17 23:54:51
2|6.55|2018-01-01|Test description|2018-05-17 23:54:51|2018-05-17 23:54:51
4|7.55|2018-02-10|Test description|2018-05-17 23:54:51|2018-05-17 23:54:51
5|3.55||Test description|2018-05-17 23:54:51|2018-05-17 23:54:51
7|3.50|2018-10-10|Test description|2018-05-17 23:54:51|2018-05-17 23:54:51

Выполните следующие две команды, используя терминал psql или любой соединитель sql.Обязательно выполните и вторую команду.

copy sales(salesid,commission,saledate,description,created_at,updated_at) from 's3://example-bucket/foo/bar/sales-example.txt' credentials 'aws_access_key_id=************;aws_secret_access_key=***********' IGNOREHEADER  1;

commit;

Надеюсь, это должно помочь вам в отладке вашей проблемы.

...