У меня довольно широкая таблица размером 350 МБ с двумя столбцами varchar (2000). Через поток данных SSIS загрузка через пункт назначения «быстрой загрузки» OLEDB в Azure SQL DW занимает 60 минут. Я изменил место назначения в этом потоке данных на назначение Azure Blob (из функции SSIS Azure pack), и тот же поток данных завершился за 1,5 минуты (а Polybase из этого нового плоского файла занимает около 2 минут).
Для другого источника у меня есть уже существующий плоский файл размером 1 ГБ. Поток данных SSIS в пункт назначения OLEDB в Azure SQL DW занимает 90 минут. Скопируйте файл в хранилище BLOB-объектов, и загрузка Polybase займет 5 минут.
SSIS - это SSIS 2014, работающий на виртуальной машине Azure в том же регионе, что и Azure SQL DW. Я знаю, что массовая загрузка выполняется намного медленнее, чем Polybase, поскольку массовая загрузка проходит через управляющий узел, но Polybase распараллеливается на всех вычислительных узлах. Но эти цифры массовой загрузки очень медленные.
Каковы оптимальные настройки потока данных SSIS и места назначения, чтобы как можно быстрее загрузить в промежуточную таблицу Azure SQL DW с помощью массовой загрузки? В частности, меня интересует оптимальное значение для следующих параметров в дополнение к любым другим параметрам, которые я не рассматриваю:
- Геометрия рабочего стола = HEAP (я считаю, что это самый быстрый)
- Data flow settings:
- DefaultBufferMaxRows = ?
- DefaultBufferSize =?
- OLEDB destination settings
- Data access mode = Table or view - fast load
- Keep Identity = unchecked
- Оставить нули =?
- Блокировка стола =?
- Проверить ограничения =?
- Строк в партии =?
- Максимальный размер фиксации вставки =?