Задача 2. Добавление и настройка контейнера «цикл по каждому элементу»
В этой задаче будет добавлена возможность выполнить циклическую обработку папки плоских файлов и применить для каждого из этих плоских файлов одинаковое преобразование потока данных, использованное на занятии 1. Это будет выполнено путем добавления в поток управления и настройки контейнера «цикл по каждому элементу».
Добавленный контейнер «цикл по каждому элементу» должен иметь возможность соединения с каждым плоским файлом в данной папке. Так как все файлы в папке имеют одинаковый формат, контейнер «цикл по каждому элементу» может использовать один и тот же диспетчер соединений с плоскими файлами для соединения с каждым из файлов. Контейнер будет использовать диспетчер соединений с плоскими файлами, созданный на занятии 1.
В настоящее время диспетчер соединений с плоскими файлами занятия 1 соединен только с одним плоским файлом. Чтобы последовательно соединиться с каждым плоским файлом в папке, необходимо настроить контейнер «цикл по каждому элементу» и диспетчер соединений с плоскими файлами, как описано ниже.
Контейнер «цикл по каждому элементу» — необходимо установить соответствие между перечисляемым значением контейнера и пользовательской переменной пакета. Контейнер будет использовать определенные пользователем переменные, чтобы динамически изменять свойства ConnectionString диспетчера соединений с плоскими файлами и последовательно соединяться с каждым файлом в папке.
Диспетчер соединений с плоскими файлами — необходимо изменить настройки диспетчера соединений, созданного на занятии 1, таким образом, чтобы использовать определенные пользователем переменные для заполнения свойства диспетчера соединений ConnectionString.
Процедуры в этом задании показывают, как создавать и изменять контейнер «цикл по каждому элементу» для использования пользовательских переменных пакетов и как добавлять в цикл задачи «Поток данных». В следующей задаче будет рассмотрено, как изменить настройки диспетчера соединений с плоскими файлами таким образом, чтобы использовать в нем пользовательскую переменную.
После внесения этих изменений в пакет при его выполнении контейнер «цикл по каждому элементу» будет применен к коллекции файлов из папки образцов данных. Каждый раз при нахождении отвечающего критериям поиска файла контейнер «цикл по каждому элементу» будет подставлять в пользовательскую переменную имя этого файла, сопоставлять эту переменную со свойством ConnectionString диспетчера соединений с плоскими файлами SampleCurrencyData, а затем выполнять поток данных по этому файлу. Таким образом, при каждом проходе цикла Foreach для выполнения задачи «Поток данных» будет подставляться другой плоский файл.
Примечание |
---|
Так как в службах Microsoft Integration Services поток управления и поток данных разделены, любые циклы, добавленные в поток управления, не требуют изменения потока данных. Поэтому поток данных, созданный на занятии 1, не требуется изменять. |
Добавление контейнера «цикл по каждому элементу»
В среде Business Intelligence Development Studio откройте вкладку Поток управления.
В окне Область элементов раскройте элемент Элементы потока управления и перетяните Контейнер «цикл по каждому элементу» в рабочую область конструктора вкладки Поток управления.
Щелкните правой кнопкой мыши добавленный Контейнер «цикл по каждому элементу» и выберите команду Изменить.
В диалоговом окне Редактор циклов Foreach на странице Общие в поле Имя введите Foreach для файлов в папке. Нажмите кнопку ОК.
Щелкните правой кнопкой мыши контейнер «цикл по каждому элементу», выберите Свойства, в окне «Свойства» убедитесь, что свойство LocaleID установлено в значение Английский (США).
Настройка перечислителя контейнера «цикл по каждому элементу»
Дважды щелкните «Цикл по каждому файлу в папке», чтобы снова открыть Редактор циклов по каждому элементу.
Щелкните Коллекция.
На странице Коллекция выберите Перечислитель с циклом по каждому файлу.
В группе Конфигурация перечислителя нажмите кнопку Обзор.
В диалоговом окне Выбор папки найдите папку, которая содержит образцы данных учебника.
По умолчанию образцы данных учебника устанавливаются в папку «C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services\Tutorial\Creating a Simple ETL Package\Sample Data».
В поле Файл введите Currency_*.txt.
Сопоставление перечислителя с пользовательской переменной
Щелкните Сопоставления переменной.
На странице Сопоставления переменной в столбце Переменная щелкните пустую ячейку и выберите <Создать переменную…>.
В диалоговом окне Добавление переменной в поле Имя введите varFileName.
Важно! В именах переменных учитывается регистр.
Нажмите кнопку ОК.
Еще раз нажмите кнопку ОК, чтобы закрыть диалоговое окно Редактор циклов Foreach.
Добавление задачи «Поток данных» в цикл
- Перетяните задачу «Поток данных» Получение валюты образца в контейнер «цикл по каждому элементу», получивший название по каждому файлу в папке.