Урок 2-2. Добавление и настройка контейнера "Цикл по каждому элементу"

Применимо к: SQL Server Integration Runtime служб SSIS в Фабрика данных Azure

В этой задаче вы добавите функцию, которая циклически обрабатывает папку неструктурированных файлов и применяет к каждому из этих файлов преобразование потока данных, созданное в уроке 1. Это будет выполнено путем добавления в поток управления и настройки контейнера «цикл по каждому элементу».

Добавленный контейнер «цикл по каждому элементу» должен иметь возможность соединения с каждым неструктурированным файлом в данной папке. Так как все файлы в папке имеют одинаковый формат, контейнер «цикл по каждому элементу» может использовать один и тот же диспетчер соединений с неструктурированными файлами для соединения с каждым из файлов. В этом контейнере используется диспетчер подключений для неструктурированных файлов, который вы создали на уроке 1.

В настоящее время диспетчер подключений для неструктурированных файлов из урока 1 умеет подключаться только к одному конкретному файлу. Чтобы последовательно подключиться к каждому неструктурированному файлу в папке, следует настроить контейнер «Цикл по каждому элементу» и диспетчер подключений для неструктурированных файлов так, как описано ниже.

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

  • Диспетчер соединений с неструктурированными файлами. Измените настройки диспетчера подключений, созданного в уроке 1, добавив пользовательскую переменную для заполнения свойства ConnectionString диспетчера подключений.

Процедуры в этом задании показывают, как создать и изменить контейнер "Цикл по каждому элементу" для использования пользовательской переменной пакета и как добавить в этот цикл задачу потока данных. В следующей задаче вы узнаете, как изменить настройки диспетчера подключений для неструктурированных файлов таким образом, чтобы использовать эту пользовательскую переменную.

После этих изменений при запуске пакета будет выполняться контейнер "Цикл по каждому элементу" для всех файлов из папки образцов данных. Для каждого файла, который отвечает критериям поиска, контейнер "Цикл по каждому элементу" помещает имя файла в пользовательскую переменную, затем сопоставляет ее со свойством ConnectionString диспетчера подключений для неструктурированных файлов Sample Currency Data и выполняет поток данных по этому файлу. Таким образом, при каждом проходе цикла Foreach в задачу потока данных передается новый неструктурированный файл.

Примечание

Так как службы Microsoft Integration Services отделяют поток управления от потока данных, любые циклы, добавляемые в поток управления, не требуют изменения потока данных. Это означает, что созданный в уроке 1 поток данных можно сохранить в текущем виде.

Добавление контейнера "Цикл по каждому элементу"

  1. На странице SQL Server Data Tools выберите вкладку Поток управления.

  2. На панели элементов служб SSISразверните элемент Контейнерыи перетащите Контейнер "цикл по каждому элементу" в рабочую область конструктора вкладки Поток управления .

  3. Щелкните правой кнопкой мыши новый Контейнер "Цикл по каждому элементу" и выберите команду Изменить.

  4. В диалоге Редактор циклов по каждому элементу на странице Общие в поле Имявведите Цикл по каждому файлу в папке. Щелкните ОК.

  5. Щелкните правой кнопкой мыши контейнер "Цикл по каждому элементу", выберите Свойства и убедитесь, что в окне Свойства свойство LocaleID имеет значение Английский (США) .

Настройка перечислителя для контейнера "Цикл по каждому элементу"

  1. Дважды щелкните Цикл по каждому файлу в папке, чтобы снова открыть Редактор циклов по каждому элементу.

  2. Выберите элемент Коллекция.

  3. На странице Коллекция выберите Перечислитель с циклом по каждому файлу.

  4. В группе Конфигурация перечислителя щелкните Обзор.

  5. В диалоговом окне Выбор папки выберите на компьютере папку, в которой находятся файлы Currency_*.txt с тестовыми данными.

  6. В поле Файлы введите Currency_*.txt.

Сопоставление перечислителя с пользовательской переменной

  1. Щелкните Сопоставления переменной.

  2. На странице Сопоставления переменной в столбце Переменная щелкните пустую ячейку и выберите пункт <Создать переменную…>.

  3. В диалоговом окне Добавление переменной введите в поле Имя значение varFileName.

    Примечание

    В именах переменных учитывается регистр букв.

  4. Щелкните ОК.

  5. Еще раз нажмите кнопку ОК, чтобы закрыть диалог Редактор циклов по каждому элементу.

Добавление задачи потока данных в цикл

  • Перетащите задачу потока данных Extract Sample Currency Data (Извлечение тестовых данных о валютах) на контейнер "Цикл по каждому элементу" с именем Цикл по каждому файлу в папке.

Переход к следующей задаче

Шаг 3. Изменение диспетчера соединений с неструктурированными файлами

См. также раздел

Настройка контейнера "Цикл по каждому элементу"
Использование переменных в пакетах