Запрос Amazon RedShift прерывается автоматически через 1 час
У меня есть около 500 ГБ сжатых данных в Amazon S3. Я хотел загрузить эти данные в Amazon Redshift. Для этого я создал внутреннюю таблицу в AWS Athena и пытаюсь загрузить данные во внутреннюю таблицу Amazon Redshift.
Загрузка этих больших данных в Amazon Redshift занимает более часа. Проблема в том, что когда я запускаю запрос для загрузки данных, он прерывается через 1 час. Я пробовал это 2-3 раза, но это прерывается через 1 час. Я использую Aginity Tool для запуска запроса. Кроме того, в инструменте Aginity он показывает, что запрос в данный момент выполняется, а загрузчик вращается.
Более подробная информация: кластер Redshift имеет 12 узлов по 2 ТБ для каждого узла, и я использовал 1,7 ТБ. S3 файлы не одного размера. Один из них 250 ГБ. Некоторые из них в МБ.
Я использую команду
создать таблицу table_name как select * из athena_schema.table_name
он останавливается ровно через 1 час.
Примечание: я установил текущее время ожидания запроса в Aginity на 90000 сек.
2 ответа
Я знаю, что это старая ветка, но для любого, кто приезжает сюда из-за той же проблемы, я понял, что, по крайней мере, в моем случае, проблема была в клиенте Aginity; таким образом, он не связан с Redshift или его Workload Manager, а только с таким сторонним клиентом, который называется Aginity. Таким образом, используйте другой клиент, такой как SQL Workbench, и выполните команду COPY оттуда.
Надеюсь это поможет! Карлос С.
Больше информации о моей среде:
Redshift:
Cluster TypeThe cluster's type: Multi Node
Cluster: ds2.xlarge
NodesThe cluster's type: 4
Cluster Version: 1.0.4852
Клиентская среда:
Aginity Workbench for Redshift
Version 4.9.1.2686 (build 05/11/17)
Microsoft Windows NT 6.2.9200.0 (64-bit)
Сеть:
Connected to OpenVPN, via SSH Port tunneling.
The connection is not being dropped. This issue is only affecting the COPY command. The connection remains active.
Команда:
copy tbl_XXXXXXX
from 's3://***************'
iam_role 'arn:aws:iam::***************:role/***************';
S3 Структура:
120 files of 6.2 GB each. 20 files of 874MB.
Выход:
ERROR: 57014: Query (22381) cancelled on user's request
Статистика:
Start: ***************
End: ***************
Duration: 3,600.2420863
Я не уверен, что следующий ответ решит вашу проблему с тайм-аутом ровно через 1 час. Но, исходя из моего опыта, в случае Redshift загрузка данных с помощью команды Copy - лучший и быстрый способ. Так что я чувствую, что проблема тайм-аута вообще не должна возникать в вашем случае.
Команда копирования в RedShift может загружать данные из S3 или через SSH.
например, простая копия
copy sales from 'emr://j-SAMPLE2B500FC/myoutput/part-*' iam_role
'arn:aws:iam::0123456789012:role/MyRedshiftRole'
delimiter '\t' lzop;
например, используя Menifest
copy customer
from 's3://mybucket/cust.manifest'
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
manifest;
PS: даже если вы сделаете это с помощью Menifest и разделите ваши данные на несколько файлов, это будет быстрее, так как RedShift загружает данные параллельно.