Основной причиной узкого места выполнения красного смещения, которое я считал, что Redshift рассматривает каждый и каждый удар в кластер в качестве одного запроса. Он выполняет каждый запрос в своем кластере, а затем переходит к следующему этапу. Теперь, когда я отправляю несколько строк (в этом случае 10), каждая строка данных обрабатывается отдельным запросом. Redshift выполняет каждый запрос один за другим, и загрузка данных завершается после выполнения всех запросов. Это означает, что если у вас есть 100 миллионов строк, в вашем кластере Redshift будет выполнено 100 миллионов запросов. Ну, производительность идет на свалку !!!
Использование S3 File Output шаг в PDI будет загружать данные в S3 ведро, а затем применить команду COPY на красном смещении кластера читать одни и те же данные от S3 до RedShift. Это решит вашу проблему производительности.
Вы также можете прочитать ниже ссылки в блоге:
- Loading data to AWS S3 using PDI
- Reading Data from S3 to Redshift
Надеется, что это помогает :)
В качестве дополнения к этому, если вы можете разделить свой вывод на отдельные файлы на S3, вы можете использовать средство манифеста для распараллеливания своих нагрузок. http://docs.aws.amazon.com/redshift/latest/dg/r_COPY_command_examples.html#copy-command-examples-manifest –