Бөлісу құралы:


Занятие 2-2. Добавление и настройка контейнера цикла foreach

Область применения: среда выполнения интеграции SSIS SQL Server в Фабрика данных Azure

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

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

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

  • Контейнер цикла foreach: вы сопоставляете перечисленное значение контейнера с определяемой пользователем переменной пакета. Контейнер будет использовать эту переменную, чтобы динамически изменять свойство 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. Изменение диспетчера соединений с неструктурированными файлами

См. также

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