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


Контейнеры - часть 2


Рисунок 45

Три основных элемента задачи изображены на Рисунке 46. Первый из них это параметр IntExpression, с помощью которого задается начальное значение параметра. Параметр EvalExpression определяет условие, которое служит сигналом механизму выполнения SSIS для выхода из контейнера For Loop. И, наконец, необязательное свойство AssignExpression задает шаг приращения того параметра, что был ранее задан в свойстве InitExpression.

Рисунок 46

Наиболее практичным способом использования данного контейнера является циклическое выполнение задачи WMI Event Watcher или задачи Message Queue для поиска событий. Например, в задаче Message Queue можно ожидать пока группа пакетов другого сервера не зарегистрирует факт завершения работы, чтобы пакет смог продолжить выполнение следующего набора задач. Для этого, можно организовать цикл по задаче Message Queue с помощью контейнера For Loop и ждать пока задача Message Queue не запишет в переменную SSIS значение, которое будет означать успешное завершение других пакетов. Затем с помощью ограничения приоритета On Success можно направить выполнение пакета по следующей ветке.

Контейнер Foreach Loop

Наиболее необычным из новых контейнеров является Foreach Loop. Этот контейнер может сберечь разработчикам традиционных DTS больше всего времени. Контейнер Foreach Loop позволяет разработчикам SSIS организовать цикл по коллекции файлов, записям набора Microsoft ActiveX® Data Objects (ADO), переменным и выполнить последовательность задач.

Очень часто примеры того, как можно использовать контейнер Foreach Loop, можно почерпнуть в процессах ETL. Там, где создавался пакет для цикла по всем файлам директории и запуска для каждого извлеченного файла дочернего пакета. В SQL Server 2000 DTS все это требовало изрядного количества кода в задаче ActiveX Script. В SSIS же все, что нужно, это создать контейнер и задать ему свойство Enumerator в For Each File Enumerator, как это показано на Рисунке 47. Затем в разделе Enumerator Configuration указывается каталог, по которому будет проходить цикл и тип файла. Если нумератор обнаружит файл, то он может присвоить его имя в соединение или переменную SSIS, что можно использовать для динамического запуска пакета внутри цикла.




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



Книжный магазин