У нас запущен кластер из 5 узлов dc1.large, и возникают проблемы с масштабированием загрузки данных.
Каждый «загрузчик» - это отдельный процесс, который: - запускает команду COPY из S3 в промежуточную таблицу - затем выполняется удаление активной таблицы (для удаления строк, которые находятся в промежуточной таблице) - наконец, вставляются промежуточные данные в основную таблицу
Вышеизложенное является в основном рекомендуемым методом в doc < / а>:
Следует отметить важную деталь: каждый загрузчик работает с отдельным набором таблиц (т.е. между загрузчиками нет конфликта блокировок, потому что они работают с разными наборами данных клиентов), поэтому первый загрузчик будет копировать в таблицу L1_Staging и, в конечном итоге, в таблицу L1_main, загрузчик два будут копироваться в L2_staging и, в конечном итоге, в таблицу L2_main и т. д.
Мы замечаем, что когда несколько загрузчиков работают параллельно, время выполнения задания увеличивается, как если бы redhift сериализует все операции записи. Опять же, нет конкуренции за блокировку.
Почему мы видим эту закономерность? Redshift плохо справляется с параллельной записью?