Новые возможности SQL Server 2005 Integration Services


Контейнеры


Контейнеры являются базовыми компонентами архитектуры потока управления и объектной модели SSIS. Они помогают логически группировать задачи в отдельные рабочие блоки или создавать сложные условия. Существует четыре типа контейнеров: TaskHost, Sequence, ForLoop, ForEachLoop. Они позволяют:

  • Сгруппировать ограничения приоритета так, чтобы группа задач обязательно была успешно (или неуспешно) выполнена перед запуском другой задачи.
  • Циклически выполнять последовательность задач до достижения определенного условия.
  • Циклически выполнять последовательность задач для каждого элемента какой-либо коллекции.

Контейнер Task Host

Контейнер TaskHost является основным контейнером для единичной задачи. Если не указано для задачи другого контейнера, то она будет помещена в контейнер TaskHost. Архитектура SSIS предоставляет задаче переменные и обработчики событий именно через контейнер TaskHost.

Контейнер Sequence

Ограничения последовательности управляют потоком подмножества пакета и помогают логически поделить пакет на более мелкие управляемые части. Вот примеры того, где можно использовать Sequence контейнер:

  • Запретить функциональную область пакета.
  • Ограничить область видимости переменных рамками контейнера, а не пакета.
  • Повысить управляемость путем задания свойств сразу всему контейнеру вместо задания их для каждой задачи по отдельности.

Контейнер Sequence выглядит точно также как и другие задачи в Controller Flow. После перетаскивания контейнера Sequence из Панели Инструментов, можно поместить в него задачи. На Рисунке 44 показан пример из двух контейнеров. Левый контейнер является контейнером Sequence, который содержит две задачи и должен завершиться успешно для того, чтобы смог запуститься контейнер For Each Loop. Последний контейнер мы сейчас и рассмотрим более подробно.

Рисунок 44

Контейнер For Loop

Контейнер For Loop организует цикл по всем задачам до достижения заданного условия. Например, как показано на Рисунке 45, задача Send Mail выполняется четыре раза. Хотя этот пример может показаться неактуальным, он показывает мощь контейнера For Loop. Данный контейнер может содержать также и другие контейнеры для создания вложенных циклов.




- Начало -  - Назад -  - Вперед -