Параллелизм SSIS - кластер Microsoft HPC? - PullRequest
1 голос
/ 19 мая 2011

Я новичок в SSIS и пытаюсь использовать его функцию параллелизма для импорта данных из базы данных.

Моя задача заключается в следующем: импортировать многотерабайтную базу данных в набор плоских файлов так же быстронасколько это возможно.

Я думал об этом:

В моем распоряжении кластер HPC Microsoft Server 2008 (из 3 узлов).Я думал о написании задания HPC SOA, чтобы все три вычислительных узла могли устанавливать независимые соединения с SQL Server и параллельно импортировать часть данных.Конечно, это не имеет ничего общего с SSIS и будет независимой утилитой.

Затем я наткнулся на SSIS и его функции параллельного импорта.Мой сервер SSIS не очень высокого класса - только 4 ГБ машины.Я как-то склонен использовать SSIS, потому что это идеальный способ Microsoft импортировать данные - и мне не придется переписывать много вещей и, возможно, использовать существующие преобразования и т. Д.Пользовательские задачи (или доступные) и выполнять ли этот импорт параллельно?

Ответы [ 2 ]

1 голос
/ 20 мая 2011

Гитмо, я могу неправильно понять твой вопрос, но попробую.Вам нужно переместить данные из экземпляра SQL Server в несколько файлов, правильно?Вы хотите использовать функции параллельного перемещения данных, предоставляемые службами SSIS.Это означает одновременное выполнение нескольких задач потока данных (DFT).Для каждого целевого файла вы можете иметь только один DFT из-за проблем с одновременной записью.

Чтобы получить несколько одновременно выполняемых задач потока данных, в которых источником является база данных SQL Server, а целью является набор файлов, вы можете попробовать следующие способы (обратите внимание, что для параллелизации можно использовать верхние ограничения).выход из SSIS, основанный на многих факторах, включая количество ядер вашего процессора, независимо от того, работаете ли вы в BIDS / Visual Studio или нет, а также различные параметры в ваших пакетах, ваш сервер (ы), ваш экземпляр SQL Server и многие другие соображения):

  1. Решение с несколькими одновременными DFT-файлами: один пакет служб SSIS с одним диспетчером подключений указывал на исходную базу данных SQL Server, а многие диспетчеры подключений указывали на отдельный целевой файл, а также один DFT для каждого целевого файла.Все ДПФ не связаны друг с другом (нет ограничений по приоритету или зеленых / красных / синих линий / стрелок).Если до или после ETL-шагов требуется отличный способ распараллеливания этих DFT-файлов, это поместить их все в контейнер последовательностей, который связан с более ранними и более поздними задачами через ограничения / стрелки предшествования.Эти отключенные DFT-файлы в своем собственном контейнере последовательностей будут пытаться запускаться одновременно.
  2. Множественное одновременное решение DTEXEC: несколько пакетов SSIS, каждый со своим собственным целевым DFT для конкретного файла.Вы вручную запускаете отдельные процессы DTEXEC либо через отдельные окна CMD, либо через графический интерфейс.# 3 ниже представлен вариант этого решения, и, возможно, лучше.
  3. Родительский мастер-пакет, выполняющий несколько дочерних пакетов Решение: оберните пакеты файлов для каждого целевого, разработанные в №2 выше, в один родительский мастер-пакет.В родительском пакете есть несколько одновременно выполняемых задач пакета выполнения.Снова эти задачи выполнения пакета будут отключены от других задач.Хороший способ сделать это - удалить несколько задач «Выполнение пакета» в их собственный контейнер последовательностей.Как и раньше, если задачи «Выполнение пакета» отключены (без ограничений / стрелок предшествования), все они будут пытаться запускаться одновременно.

Посмотрите на эту замечательную статью от команды Microsoft SQLCAT, чтобы узнать больше идей /понимание: 10 лучших рекомендаций по SQL Server Integration Services

Возможны различия в этих же идеях и, возможно, в других решениях, доступных как внутри, так и за пределами SSIS.Удачи!

0 голосов
/ 21 декабря 2011

пожалуйста, посмотрите этот пост ..... используя многопоточность ssis и достижение параллелизма Многопоточное последовательное выполнение

без изменения большей части пакета

http://sqljunkieshare.com/2011/12/21/parallelism-in-etl-process-ssis-2008-and-ssis-2012/

...