У нас работает кластер 5 dc1.large и возникают проблемы с масштабированием нашей загрузки данных.Выполняет ли красное смещение сериализацию операций записи?
Каждый «погрузчик» представляет собой отдельный процесс, который: - запускает команду COPY из S3 в промежуточную таблицу - то удаление выполняется на живом столе (для удаления строк, которые находятся в промежуточной таблице) - наконец, данные промежуточной вставляется в основной таблице
, приведенный выше, в основном, рекомендуемый метод в doc:
важная деталь следует отметить, что каждый погрузчик работает на отдельном наборе таблиц (т.е. существует отсутствие конкуренции между загрузчиками, поскольку они работают с различными наборами данных клиента). Таким образом, загрузчик один w плохо скопируйте в таблицу L1_Staging и, в конечном счете, в таблицу L1_main, второй загрузчик скопирует в L2_staging и, в конечном счете, в таблицу L2_main и т. д.
Что мы замечаем, так это то, что, когда мы параллельно работаем с несколькими загрузчиками, время работы увеличивается, как если бы redshift выполняет сериализацию всех операций записи. Опять же, не существует конкуренции за блокировку.
Почему мы видим этот образец? Правильно ли красное смещение не обрабатывает параллельную запись?
Возможно ли, что записи используют доступную пропускную способность для хранения? Если запрос связан с I/O, то дополнительные потоки не будут работать быстрее. –
Запрос определенно связан с i/o, его большая вставка с последующим удалением, за которым следует другая вставка. Redshift - это черный ящик, поэтому я не знаю, сколько пропускной способности ввода-вывода я потребляю с каждым запросом. – maxTrialfire