Каков максимальный размер запроса вставки Redshift? - PullRequest
0 голосов
/ 19 сентября 2018

Я пытаюсь объединить несколько строк данных в запрос Redshift INSERT.Чтобы сохранить эффективность, я хочу знать наибольшую длину, которую я могу пройти, прежде чем мне нужно будет начинать новую партию.Если есть лучший способ сделать это, пожалуйста, дайте мне знать.

РЕДАКТИРОВАТЬ: Я был немного расплывчатым.Я пытаюсь добраться от Elasticsearch до Redshift.В результате получается формат JSON, в который я преобразую: INSERT INTO xxxx VALUES (a1, a2, a3), (b1, b2, b3), (c1, c2, c3)

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018

Лучший способ загрузки данных лучший - использование оператора COPY для загрузки из Amazon S3.Это позволяет всем узлам участвовать в нагрузке параллельно и является наиболее эффективным методом.

Если у вас есть приложение, которое генерирует небольшие пакеты данных, которые не гарантируют COPY, то рекомендуетсячто вы используете многострочную вставку всякий раз, когда это возможно .

Нет конкретного совета относительно того, сколько строк следует вставить, но чем больше, тем лучше (так какприводит к меньшему количеству пакетов).

Если данные уже находятся в другой таблице Amazon Redshift, вы можете Использовать групповую вставку до , выбрать из одной таблицы и вставить в другую таблицу .

См .: Рекомендации Amazon Redshift по загрузке данных - Amazon Redshift

0 голосов
/ 19 сентября 2018

Максимальная длина оператора Redshift составляет 16 МБ.См. https://docs.aws.amazon.com/redshift/latest/dg/c_redshift-sql.html

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

...