Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения:SQL Server
среда выполнения интеграции SSIS в Фабрика данных Azure
Контейнер цикла Foreach задает повторяющийся поток управления в пакете. Реализация цикла схожа с циклической структурой Foreach в языках программирования. Организация цикла в пакете происходит с помощью перечислителя Foreach. Контейнер цикла Foreach повторяет поток управления для каждого элемента указанного перечислителя.
Службы SQL Server Integration Services предоставляют следующие типы перечислителя:
Перечислитель ADO Foreach для перебора строк в таблицах. Например, можно получить все строки в наборе записей ADO.
Назначение «Набор записей» сохраняет данные в памяти в наборе записей, который хранится в переменной пакета, относящейся к типу данных Object . Как правило, для обработки набора записей по одной строке за раз используется контейнер цикла Foreach с перечислителем Foreach ADO. Переменная, указанная для перечислителя Foreach ADO, должна иметь тип данных Object. Дополнительные сведения о назначении Recordset см. в разделе Использование назначения Recordset.
Перечислитель Foreach ADO.NET Schema Rowset для получения сведений о схеме источника данных. Например, можно перечислить и получить список таблиц в базе данных SQL Server AdventureWorks2025.
Перечислитель Foreach File для перебора файлов в папке. Перечислитель может просматривать вложенные папки. Например, можно прочитать все файлы с расширением имени файла *.log в папке Windows и её вложенных папках. Обратите внимание, что нельзя указать порядок извлечения файлов.
Перечислитель Foreach из переменной для перебора перечисляемого объекта, содержащегося в указанной переменной. Перечисляемый объект может быть массивом, ADO.NET DataTable, перечислителем служб Integration Services и т. д. Например, можно перечислить значения массива, в которых содержатся имена серверов.
Перечислитель Foreach Item для перечисления элементов, являющихся коллекциями. Например, можно перечислить имена исполняемых объектов и рабочие каталоги, используемые задачей «Выполнение процесса».
Перечислитель для списка узлов, предназначенный для перебора результирующего набора выражения XML Path Language (XPath). Например, указанное выражение может перечислить и вывести список всех авторов классического периода:
/authors/author[@period='classical'].Перечислитель Foreach SMO для перебора объектов SQL Server Management Objects (SMO). Например, можно перечислить и получить список представлений в базе данных SQL Server.
Перечислитель файлов HDFS Foreach для перечисления файлов в указанном расположении в HDFS.
Перечислитель больших двоичных объектов Azure по циклу Foreach позволяет перечислить большие двоичные объекты в контейнере больших двоичных объектов в службе хранилища Azure.
Перечислитель файлов ADLS в цикле Foreach для перечисления файлов в каталоге Azure Data Lake Store.
Перечислитель файлов Data Lake Storage 2-го поколения в Foreach для перечисления файлов в каталоге Azure Data Lake Storage Gen2.
На приведенной ниже диаграмме показан контейнер цикла Foreach, содержащий задачу «Файловая система». В цикле Foreach используется перечислитель Foreach File, а задача «Файловая система» настроена на копирование файла. Если папка, указанная перечислителем, содержит четыре файла, цикл повторяется четыре раза и копирует четыре файла.
Для обновления свойства объекта в пакете, соответствующего значению коллекции перечислителя, можно использовать сочетание переменных и выражений для свойств. Вначале необходимо сопоставить значение коллекции с пользовательской переменной, а затем задать выражение для свойства, которое использует указанную переменную. Например, значение коллекции в перечислителе Foreach File сопоставляется с переменной с именем MyFile, а затем эта переменная используется в выражении свойства Subject задачи «Отправка почты». Во время выполнения пакета свойству Subject присваивается имя файла на каждой итерации цикла. Дополнительные сведения см. в разделе Использование выражений свойств в пакетах.
Переменные, сопоставленные со значением коллекции в перечислителе, также могут использоваться в выражениях и скриптах.
Контейнер цикла Foreach может содержать несколько задач и контейнеров, но использовать только один тип перечислителя. Если контейнер цикла Foreach содержит несколько задач, можно сопоставить значение коллекции перечислителя с несколькими свойствами каждой задачи.
Чтобы определить транзакцию для подмножества потока управления пакета, можно задать атрибут транзакции для контейнера «цикл Foreach». Таким образом, вы можете управлять транзакциями на уровне цикла Foreach, а не на уровне пакета. Например, если контейнер цикла Foreach многократно выполняет поток управления, который обновляет измерения и таблицы фактов в схеме «звезда», можно настроить транзакцию так, чтобы либо все таблицы фактов были успешно обновлены, либо не была обновлена ни одна из них. Дополнительные сведения см. в разделе Транзакции служб Integration Services.
Типы перечислителей
Перечислители являются настраиваемыми. Для настройки необходимо предоставлять различные сведения в зависимости от перечислителя.
В приведенной ниже таблице перечисляются все типы сведений для разных типов перечислителей.
| Перечислитель | Требования настройки |
|---|---|
| ForEach ADO | Задайте исходную переменную для объекта ADO, а также режим перечислителя. Переменная должна иметь тип данных Object. |
| Для каждого набора строк схемы ADO.NET | Задайте соединение с базой данных, а также перечисляемую схему. |
| Для каждого файла | Задайте папку и файлы для перечисления, формат имен полученных файлов, а также укажите, нужно ли просматривать вложенные папки. |
| Цикл foreach из переменной | Задайте переменную, которая содержит объекты перечисления. |
| Для каждого элемента | Определите элементы в коллекции Foreach Item, включая столбцы и типы данных столбцов. |
| Для каждого элемента списка узлов | Задайте источник XML-документа, а также настройте операцию XPath. |
| Foreach SMO | Задайте соединение с базой данных, а также перечисляемые объекты SMO. |
| Перечислитель с циклом по каждому файлу HDFS | Задайте папку и файлы для перечисления, формат имен полученных файлов, а также укажите, нужно ли просматривать вложенные папки. |
| Большой двоичный объект Azure Foreach | Укажите контейнер хранилища BLOB-объектов Azure, содержащий BLOB-объекты, которые требуется перечислить. |
| Файл ADLS по циклу Foreach | Укажите каталог Azure Data Lake Store, который содержит перечисляемые файлы. |
| Файл Foreach Data Lake Storage 2-го поколения | Укажите с остальными параметрами каталог Azure Data Lake Storage 2-го поколения, который содержит перечисляемые файлы. |
Добавление перечисления в поток управления с помощью контейнера Foreach Loop
Integration Services включает контейнер "Цикл Foreach" — элемент потока управления, который упрощает добавление циклической конструкции, перебирающей файлы и объекты в потоке управления пакета. Дополнительные сведения см. в разделе Контейнер цикла Foreach.
Контейнер цикла Foreach сам по себе не предоставляет никаких функциональных возможностей; он лишь задаёт структуру, в которой создаётся повторяющийся поток управления, указывается тип перечислителя и настраивается сам перечислитель. Чтобы контейнер выполнял свои функции, необходимо добавить в контейнер «Цикл Foreach» как минимум одну задачу. Дополнительные сведения см. в разделе Integration Services Tasks.
Контейнер цикла Foreach может включать поток управления с несколькими задачами и другими контейнерами. Добавление задач и контейнеров в контейнер Foreach Loop аналогично добавлению их в пакет, за исключением того, что задачи и контейнеры перетаскиваются в контейнер Foreach Loop, а не в пакет. Если контейнер цикла Foreach содержит несколько задач или контейнеров, их можно соединить с помощью ограничений очередности, так же, как в пакете. Дополнительные сведения см. в статье Precedence Constraints.
Добавьте и настройте контейнер цикла Foreach
Добавьте в пакет контейнер «Foreach Loop». Дополнительные сведения см. в разделе Добавление задачи или контейнера в поток управления или удаление их из него.
Добавьте задачи и контейнеры в контейнер Foreach Loop. Дополнительные сведения см. в разделе Добавление задачи или контейнера в поток управления или удаление их из него.
Соедините задачи и контейнеры в контейнере «Foreach Loop» с помощью ограничений предшествования. Дополнительные сведения см. в разделе Соединение задач и контейнеров с помощью элементов управления очередностью по умолчанию.
Настройте контейнер Foreach Loop.
Настройте контейнер цикла Foreach
Эта процедура описывает, как настроить контейнер Foreach Loop, включая выражения для свойств на уровне перечислителя и контейнера.
В SQL Server Data Tools (SSDT) откройте проект служб Integration Services, содержащий нужный пакет.
Щелкните вкладку Поток управления и дважды щелкните Foreach Loop.
В диалоговом окне Редактор цикла Foreach нажмите Общие и, при необходимости, измените имя и описание цикла Foreach.
Щелкните Коллекция и выберите тип перечислителя из списка Перечислитель .
Укажите перечислитель и установите параметры перечислителя, как показано далее.
Чтобы использовать перечислитель Foreach File, укажите папку, содержащую файлы, которые нужно перечислить, задайте фильтр по имени и типу файла, а также укажите, следует ли возвращать полное имя файла с путем. Также укажите, нужно ли для поиска файлов обращаться ко вложенным папкам.
Чтобы использовать перечислитель Foreach Item, нажмите Столбцы, а затем в диалоговом окне For Each Item Columns нажмите Добавить, чтобы добавить столбцы. Выберите тип данных из списка Тип данных для каждого столбца и нажмите кнопку ОК.
Введите значения в столбцах или выберите их из списков.
Примечание.
Чтобы добавить новую строку, щелкните в любом месте за пределами ячейки, в которую было введено значение.
Примечание.
Если значение несовместимо с типом данных столбца, текст будет выделен.
Чтобы использовать перечислитель Foreach ADO, выберите существующую переменную или щелкните Создать переменную в списке Переменная-источник объекта ADO, чтобы указать переменную, которая содержит имя объекта ADO, подлежащего перечислению, и выберите вариант режима перечисления.
Если создается новая переменная, установите ее свойства в диалоговом окне Добавить переменную .
Чтобы использовать перечислитель Foreach ADO.NET Schema Rowset, выберите существующее подключение ADO.NET или щелкните Создать подключение в списке Подключение, а затем выберите схему.
При необходимости нажмите кнопку Задать ограничения и выберите ограничения схемы, переменную, содержащую значение ограничения, или введите значение ограничения, а затем нажмите кнопку ОК.
Чтобы использовать перечислитель «Foreach From Variable», выберите переменную в списке Variable.
Чтобы использовать перечислитель Foreach NodeList, нажмите DocumentSourceType, выберите тип источника из списка, а затем нажмите DocumentSource. В зависимости от значения, выбранного для DocumentSourceType, выберите из списка переменную или подключение файла, создайте новую переменную или подключение файла или введите источник XML в Редакторе исходного текста документа.
Затем щелкните EnumerationType и выберите тип перечисления из списка. Если значением EnumerationType является Navigator, Node или NodeText, щелкните OuterXPathStringSourceType и выберите тип источника, затем щелкните OuterXPathString. В зависимости от значения, установленного для OuterXPathStringSourceType, выберите из списка переменную или подключение файла, создайте новую переменную или подключение файла или введите строку для внешнего выражения языка пути XML (XPath).
Если значением EnumerationType является ElementCollection, задайте OuterXPathStringSourceType и OuterXPathString, как описано выше. Затем щелкните InnerElementType и выберите тип перечисления для внутренних элементов, потом щелкните InnerXPathStringSourceType. В зависимости от значения, заданного для InnerXPathStringSourceType, выберите переменную или файловое подключение, создайте новую переменную или файловое подключение либо введите строку внутреннего выражения XPath.
Чтобы использовать перечислитель Foreach SMO, выберите существующее подключение ADO.NET или нажмите Создать подключение в списке Подключение, а затем либо введите нужную строку подключения, либо нажмите Обзор. Если нажать Обзор, в диалоговом окне Выбор перечисления SMO выберите тип объекта для перечисления и тип перечисления, а затем нажмите ОК.
При необходимости нажмите кнопку "Обзор" (...) в текстовом поле Выражения на странице Коллекция, чтобы создать выражения, которые обновляют значения свойств. Дополнительные сведения см. в разделе Добавление или изменение выражение свойства.
Примечание.
Свойства, представленные в списке Свойства, зависят от перечислителя.
При необходимости нажмите Сопоставления переменной для сопоставления свойств объектов со значением коллекции, а затем сделайте следующее:
В списке Переменные выберите переменную или нажмите <Новая переменная>, чтобы создать новую переменную.
Если создается новая переменная, установите ее свойства в диалоговом окне Добавить переменные и нажмите кнопку ОК.
При использовании перечислителя по каждому элементу можно обновить значение индекса в списке Индекс .
Примечание.
Значение индекса показывает, какой столбец в элементе нужно сопоставить с переменной. Только перечислитель по каждому элементу может использовать значение индекса, отличное от 0.
При необходимости нажмите Выражения и на странице Выражения, создайте выражения для свойств контейнера "Foreach Loop". Дополнительные сведения см. в разделе Добавление или изменение выражение свойства.
Щелкните OK.
Общая страница — редактор цикла Foreach
Используйте страницу Общие диалогового окна Редактор цикла Foreach, чтобы задать имя и описание контейнера цикла Foreach, который использует указанный перечислитель для повторения потока работ для каждого элемента коллекции.
Параметры
Имя
Укажите уникальное имя для контейнера Foreach Loop. Это имя используется в качестве метки в значке задачи и в журналах.
Примечание.
Имена объектов в пределах пакета должны быть уникальными.
Описание
Введите описание контейнера Foreach Loop.
Страница "Коллекция" — редактор цикла foreach
На странице Коллекция диалогового окна Редактор цикла Foreach можно указать тип перечислителя и настроить перечислитель.
Дополнительные сведения о контейнере "цикл по каждому элементу" и его настройке см. в разделах Контейнер "цикл по каждому элементу" и Настройка контейнера "цикл по каждому элементу".
Статические параметры
Перечислитель
Выберите тип перечислителя из списка. Параметры этого свойства приведены в следующей таблице.
| значение | Описание |
|---|---|
| Перечислитель файлов Foreach | Перечисляет файлы. Выбор этого значения отображает динамические параметры в секции Перечислитель файлов Foreach. |
| Перечислитель элементов Foreach | Перечислить значения в элементе. При выборе этого значения в разделе Перечислитель элементов Foreachотображаются динамические параметры. |
| Перечислитель ADO Foreach | Перечислить таблицы или строки в таблицах. При выборе этого значения в разделе Foreach ADO Enumerator отображаются динамические параметры. |
| Перечислитель набора строк схемы ADO.NET Foreach | Перечислить схему. При выборе этого значения отображаются динамические параметры в разделе Перечислитель Foreach ADO.NET. |
| Перечислитель Foreach из переменной | Перечислите значение переменной. При выборе этого значения в разделе Foreach From Variable Enumerator отображаются динамические параметры. |
| Перечислитель Foreach NodeList | Перечисляет узлы в XML-документе. При выборе этого значения в разделе Перечислитель Foreach Nodelistотображаются динамические параметры. |
| Перечислитель по объектам SMO | Перечисляет объекты SMO. При выборе этого значения в разделе Перечислитель по объектам SMOотображаются динамические параметры. |
| Перечислитель файлов HDFS для каждого файла | Выводит список файлов в указанном местоположении HDFS. При выборе этого значения в разделе Перечислитель файлов HDFS Foreach отображаются динамические параметры. |
| Перечислитель по большим двоичным объектам Azure | Перечисляет BLOB-файлы в указанном местоположении BLOB-объектов. При выборе этого значения в разделе Перечислитель больших двоичных объектов Azure отображаются динамические параметры. |
| Перечислитель файлов ADLS для каждого файла | Перечисляет файлы в указанном каталоге Озеро данных Store. При выборе этого значения в разделе Foreach ADLS File Enumerator отображаются динамические параметры. |
| Перечислитель файлов Data Lake Storage 2-го поколения в цикле Foreach | Перечисляет файлы в указанном каталоге Data Lake Storage 2-го поколения. При выборе этого значения в разделе Перечислитель файлов Data Lake Storage 2-го поколения по циклу Foreach отображаются динамические параметры. |
Выражения
Щелкните или разверните Выражения, чтобы просмотреть список существующих выражений для свойств. Нажмите кнопку с многоточием (…), чтобы добавить выражение свойства для свойства перечислителя или изменить и оценить существующее выражение свойства.
Связанные разделы:Выражения служб Integration Services (SSIS), Редактор выражений свойств, Построитель выражений
Динамические параметры перечислителя
Перечислитель = перечислитель для каждого файла
Для перебора файлов в папке используется перечислитель Foreach File. Например, если цикл Foreach включает задачу «Выполнение SQL», можно использовать перечислитель файлов Foreach, чтобы перебрать файлы, содержащие инструкции SQL, выполняемые задачей «Выполнение SQL». Перечислитель может быть настроен для обработки вложенных папок.
Содержимое папок и подпапок, которые перечисляет перечислитель Foreach File, может изменяться во время выполнения цикла, поскольку внешние процессы или задачи в цикле могут добавлять, переименовывать или удалять файлы во время его выполнения. Из-за этих изменений могут возникнуть некоторые непредвиденные ситуации:
Если файлы удаляются, действия одной задачи в цикле Foreach Loop могут повлиять на иной набор файлов, чем тот, с которым работают последующие задачи.
Если файлы переименовываются и внешний процесс автоматически добавляет файлы, чтобы заменить переименованные файлы, действия задач в цикле Foreach могут дважды затронуть одни и те же файлы.
Если были добавлены файлы, может быть трудно определить, какие из них затронул цикл Foreach.
Папка
Укажите путь к корневой папке для перечисления.
Просмотр
Найдите корневую папку с помощью кнопки «Обзор».
Файлы
Укажите файлы для перечисления.
Примечание.
Используйте символы-шаблоны (*), чтобы указать файлы, которые необходимо включить в коллекцию. Например, чтобы включить файлы с именами, содержащими abc, используйте фильтр *abc*.
При указании расширения имени файла перечислитель возвращает также файлы, имеющие такое же расширение и добавленные в конец символы (Точно так же себя ведет команда dir операционной системы, которая также проверяет имена файлов в формате 8.3 на предмет обратной совместимости.) Это поведение перечислителя может привести к непредвиденным результатам. Например, при перечислении только файлов Excel 2003 указывается «*.xls». Однако перечислитель возвращает также файлы Excel 2007, так как они имеют расширение XLSX.
Можно указать файлы, включаемые в коллекцию, с помощью выражения. Для этого разверните узел Выражения на странице Коллекция, выберите свойство FileSpec и нажмите кнопку с многоточием (…), чтобы добавить выражение свойства.
Полностью заданный
Выберите этот параметр, чтобы получить путь с полной спецификацией к именам файлов. Если в параметрах файлов заданы подстановочные знаки, возвращаемые полные пути соответствуют этому фильтру.
Только имя
Выберите, чтобы получить только имена файлов. Если в параметрах файлов заданы символы-шаблоны, возвращаемые имена файлов соответствуют этому фильтру.
Имя и расширение
Выберите, чтобы получить имена файлов и их расширения. Если в параметрах файлов заданы символы-шаблоны, возвращаемые имена и расширения файлов соответствуют этому фильтру.
Просмотр вложенных папок
Выберите, чтобы включить вложенные папки в перечисление.
Перечислитель = перечислитель по каждому элементу
Перечислитель Foreach Item используется для перебора элементов в коллекции. Элементы в коллекции определяются указанием столбцов и значений столбцов. Столбцы в строке определяют элемент. Например: элемент, определяющий исполняемые объекты для запуска задачей «Выполнение процесса» и рабочий каталог этой задачи, содержит два столбца; один предназначен для указания имен исполняемых объектов, другой — для указания рабочего каталога. Количество строк определяет число повторений цикла. Если таблица содержит 10 строк, значит, цикл повторяется 10 раз.
Чтобы обновить свойства задачи «Выполнение процесса», можно сопоставить переменные с элементами столбцов с помощью индекса столбца. Первый столбец, определенный в перечислителе элементов, имеет значение индекса 0, второй столбец — 1 и так далее. Значения переменных обновляются при каждом повторении цикла. Свойства Executable и WorkingDirectory задачи «Выполнение процесса» могут затем быть обновлены при помощи выражений свойств, использующих данные переменные.
Определите элементы в коллекции "For Each Item"
Задайте значение для каждого столбца в таблице.
Примечание.
Новая строка автоматически добавляется в таблицу после того, как вы введете значения в столбцы строки.
Примечание.
Если предоставленные значения несовместимы с типом данных столбца, текст выделяется красным цветом.
Тип данных столбца
Перечисляет тип данных активного столбца.
Удалить
Выберите элемент и нажмите Удалить , чтобы удалить его из списка.
Число столбцов
Нажмите, чтобы настроить тип данных столбца в элементе.
Связанные разделы: Справочник по пользовательскому интерфейсу для каждого столбца элементов
Перечислитель = перечислитель ADO ForEach
Перечислитель Foreach ADO используется для перебора строк или таблиц в объекте ADO или ADO.NET, хранящемся в переменной. Например, если цикл Foreach Loop включает задачу Script, которая записывает набор данных в переменную, можно использовать перечислитель Foreach ADO для перебора строк в наборе данных. Если переменная содержит набор данных ADO.NET, то перечислитель может быть настроен на перечисление строк в нескольких таблицах или на перечисление самих таблиц.
Переменная источника объекта ADO
Выберите пользовательскую переменную в списке или нажмите кнопку <Создать переменную...>, чтобы создать ее.
Примечание.
Переменная должна иметь тип данных Object; в противном случае возникнет ошибка.
См. также:Переменные Integration Services (SSIS), Добавление переменной
Строки в первой таблице
Выберите для перечисления только строк в первой таблице.
Строки во всех таблицах (только набор данных ADO.NET)
Выберите, чтобы пронумеровать строки во всех таблицах. Данный параметр доступен, только если все объекты для перечисления являются элементами одного набора данных ADO.NET.
Все таблицы (только для наборов данных ADO.NET)
Выберите, чтобы перечислить только таблицы.
Перечислитель = перечислитель по набору строк схемы ADO.NET
Используйте перечислитель схем Foreach ADO.NET Schema Rowset для перечисления схемы указанного источника данных. Например, если цикл Foreach включает задачу «Выполнение SQL», можно использовать перечислитель строк набора схем ADO.NET Foreach для перечисления объектов схемы, таких как столбцы в базе данных AdventureWorks, а задачу «Выполнение SQL» — для получения разрешений на доступ к схеме.
Соединение
Выберите в списке диспетчер подключений ADO.NET или нажмите кнопку <Создать подключение…>, чтобы создать его.
Внимание
Диспетчер соединений ADO.NET должен использовать поставщика данных .NET для OLE DB. При подключении к SQL Server рекомендуется использовать поставщик «Собственный клиент SQL Server», который указан в разделе Поставщики .NET для OleDb диалогового окна Диспетчер подключений.
Связанные разделы:ADO диспетчер подключений, настройка ADO.NET диспетчер подключений
Схема
Выберите схему для перечисления.
Задать ограничения
Связанные разделы: Диалоговое окно "Ограничения схемы"; настройка диспетчера подключений ADO.NET; и работа с переменными служб Integration Services (SSIS) и диалоговым окном "Добавить переменную".
Перечислитель = перечислитель по объекту из переменной
Используйте перечислитель Foreach From Variable для перебора объектов коллекции в указанной переменной. Например, если цикл Foreach включает задачу «Выполнение SQL-запроса», которая запускает запрос и сохраняет результат в переменной, можно использовать перечислитель Foreach из переменной для перебора результатов запроса.
Переменная
Выберите переменную в списке или щелкните <Создать переменную...>, чтобы создать ее.
См. также:Переменные Integration Services (SSIS), Добавление переменной
Перечислитель = перечислитель по набору узлов
Перечислитель Foreach Nodelist используется для перебора набора XML-узлов, полученного в результате применения выражения XPath к XML-файлу. Например, если цикл Foreach включает задачу «Скрипт», можно использовать перечислитель Foreach NodeList для передачи задаче «Скрипт» значения из XML-файла, которое соответствует критериям выражения XPath.
Выражение XPath, применяемое к XML-файлу, является внешней операцией XPath, сохраненной в свойстве OuterXPathString. Если тип перечисления XPath установлен в значение ElementCollection, то перечислитель Foreach NodeList может применять внутреннее выражение XPath, сохраненное в свойстве InnerXPathString, к коллекции элементов.
Дополнительные сведения по работе с XML-документами и данными см. в разделе «Employing XML in the .NET Framework» в библиотеке MSDN.
ТипИсточникаДокумента
Выберите тип источника XML-документа. Параметры этого свойства приведены в следующей таблице.
| значение | Описание |
|---|---|
| Прямой ввод | Задайте источник для XML-документа. |
| Соединение с файлом | Выберите файл, содержащий XML-документ. |
| Переменная | В качестве источника задайте переменную, содержащую XML-документ. |
ИсточникДокумента
Если DocumentSourceType установлен на прямой ввод, укажите XML-код или нажмите кнопку с многоточием (...), чтобы предоставить XML с помощью диалогового окна Document Source Editor.
Если для DocumentSourceType задано значение Подключение к файлу, выберите диспетчер подключений к файлам или щелкните <Создать подключение...>, чтобы создать новый диспетчер подключений.
Связанные разделы:диспетчер подключений файлов, редактор диспетчер подключений файлов
Если DocumentSourceType имеет значение Переменная, выберите существующую переменную или нажмите кнопку <Создать переменную...>, чтобы создать ее.
Связанные разделы:Переменные Integration Services (SSIS), Добавить переменную.
ТипПеречисления
Выберите тип перечисления из списка. Параметры этого свойства приведены в следующей таблице.
| значение | Описание |
|---|---|
| Навигатор | Перечисление с использованием XPathNavigator. |
| Узел | Перечисление узлов, возвращенных операцией XPath. |
| NodeText | Перечисление текстовых узлов, возвращенных операцией XPath. |
| ElementCollection | Перечисляет узлы-элементы, возвращаемые операцией XPath. |
OuterXPathStringSourceType
Выберите тип источника строки XPath. Параметры этого свойства приведены в следующей таблице.
| значение | Описание |
|---|---|
| Прямой ввод | Задайте источник для XML-документа. |
| Соединение с файлом | Выберите файл, содержащий XML-документ. |
| Переменная | В качестве источника задайте переменную, содержащую XML-документ. |
OuterXPathString
Если OuterXPathStringSourceType имеет значение Прямой ввод, укажите строку XPath.
Если OuterXPathStringSourceType имеет значение Соединение с файлом, выберите диспетчер подключения файлов или нажмите кнопку <Создать подключение...>, чтобы создать его.
Связанные разделы:диспетчер подключений файлов, редактор диспетчер подключений файлов
Если OuterXPathStringSourceType имеет значение Переменная, выберите существующую переменную или нажмите кнопку <Создать переменную...>, чтобы создать ее.
См. также:Переменные служб Integration Services (SSIS), Добавить переменную.
InnerElementType
Если EnumerationType имеет значение ElementCollection, выберите из списка тип внутреннего элемента.
InnerXPathStringSourceType
Выберите тип источника для внутренней строки XPath. Параметры этого свойства приведены в следующей таблице.
| значение | Описание |
|---|---|
| Прямой ввод | Задайте источник для XML-документа. |
| Соединение с файлом | Выберите файл, содержащий XML-документ. |
| Переменная | В качестве источника задайте переменную, содержащую XML-документ. |
InnerXPathString
Если InnerXPathStringSourceType имеет значение Прямой ввод, укажите строку XPath.
Если InnerXPathStringSourceType имеет значение Соединение с файлом, выберите диспетчер подключения файлов или нажмите кнопку <Создать подключение...>, чтобы создать его.
Связанные разделы:диспетчер подключений файлов, редактор диспетчер подключений файлов
Если InnerXPathStringSourceType имеет значение Переменная, выберите существующую переменную или нажмите кнопку <Создать переменную...>, чтобы создать ее.
См. также:Переменные служб Integration Services (SSIS), Добавить переменную.
Перечислитель = Перечислитель Foreach для SMO
Для перечисления объектов SQL Server Management Object (SMO) используется перечислитель Foreach SMO. Например, если цикл Foreach включает задачу «Выполнение SQL», можно использовать перечислитель Foreach SMO, чтобы перечислить таблицы в базе данных AdventureWorks и выполнить запросы, подсчитывающие количество строк в каждой таблице.
Соединение
Выберите существующий диспетчер соединений ADO.NET или нажмите <Создать соединение...>, чтобы создать новый диспетчер соединений.
См. также: ADO.NET диспетчер подключений, Configure ADO.NET диспетчер подключений
Перечислить
Укажите объект SMO для перечисления.
Просмотр
Выберите перечисление SMO.
Связанные разделы: Диалоговое окно "Выбор перечисления SMO"
Перечислитель — перечислитель с циклом по каждому файлу HDFS
Перечислитель файлов HDFS Foreach позволяет пакету SSIS перебирать файлы HDFS в указанном расположении HDFS. Имя каждого файла HDFS можно сохранить в переменной и использовать в задачах внутри контейнера цикла Foreach.
Диспетчер подключений Hadoop
Задайте существующий диспетчер подключений Hadoop или создайте новый, указывающий на размещение файлов HDFS. Дополнительные сведения см. в разделе Hadoop диспетчер подключений.
Путь к каталогу
Укажите имя каталога HDFS, содержащего файлы HDFS, которые необходимо перечислить.
Фильтр по имени файла
Укажите фильтр имен, чтобы выбрать файлы с определенным шаблоном имени. Например, MySheet*.xls* включает такие файлы, как MySheet001.xls и MySheetABC.xlsx.
Получение имени файла
Укажите тип имени файла, получаемого службами SSIS.
Полное имя — имя, содержащее путь к каталогу и имя файла.
Только имя означает, что извлекается имя файла без пути.
Просмотр вложенных папок
Укажите, следует ли рекурсивно обходить подпапки.
На странице Сопоставления переменной редактора выберите или создайте переменную, в которой будет храниться имя перечисленного файла HDFS.
Перечислитель = перечислитель для перебора BLOB-объектов Azure
Перечислитель больших двоичных объектов Azure позволяет пакету службы SSIS перечислять файлы больших двоичных объектов в указанном расположении этих объектов. Имя файла перечисляемого BLOB-объекта можно сохранить в переменной и использовать в задачах внутри контейнера Foreach Loop.
Перечислитель больших двоичных объектов Azure является компонентом пакета компонентов SQL Server Integration Services (SSIS) для Azure для SQL Server 2016 (13.x). Скачайте пакет дополнительных компонентов.
Диспетчер подключений службы хранилища Azure
Выберите существующий диспетчер подключений службы хранилища Azure или создайте новый, который ссылается на учетную запись хранения Azure.
См. также: служба хранилища Azure диспетчер подключений.
Имя BLOB-контейнера
Укажите имя контейнера больших двоичных объектов, который содержит перечисляемые файлы больших двоичных объектов.
Каталог BLOB-объектов
Укажите каталог больших двоичных объектов, который содержит перечисляемые файлы больших двоичных объектов. Каталог BLOB-объектов — это виртуальная иерархическая структура.
Рекурсивный поиск
Указывает, следует ли вести рекурсивный поиск в подкаталогах.
Фильтр по имени BLOB-объекта
Укажите фильтр по именам для перечисления файлов по определенному шаблону имен. Например, MySheet*.xls\* включает такие файлы, как MySheet001.xls и MySheetABC.xlsx.
Фильтр диапазона времени BLOB-объектов от/до
Укажите фильтр по диапазону времени. Перечисляются файлы, измененные после TimeRangeFrom и до TimeRangeTo.
Перечислитель = перечислитель файлов FOReach ADLS
Перечислитель файлов ADLS позволяет пакету SSIS перечислять файлы в Azure Data Lake Store. Полный путь к перечисленному файлу (с префиксом в виде косой черты — /) можно сохранить в переменной и использовать этот путь к файлу в задачах внутри контейнера Foreach Loop.
AzureDataLakeConnection
Указывает диспетчер соединений Azure Data Lake или создает новый, ссылающийся на учетную запись ADLS.
AzureDataLakeDirectory
Указывает каталог ADLS, который содержит перечисляемые файлы.
FileNamePattern
Задает фильтр имен файлов. Перечисляются только те файлы, имя которых соответствует указанному шаблону. Поддерживаются подстановочные знаки * и ?.
ПоискRecursively
Указывает, следует ли выполнять рекурсивный поиск в указанном каталоге.
Перечислитель = перечислитель Data Lake Storage 2-го поколения файла foreach
Перечислитель файлов Foreach Data Lake Storage 2-го поколения позволяет пакету SSIS перечислять файлы в Azure Data Lake Storage 2-го поколения.
AzureStorageConnection
Задает существующий диспетчер подключений к службе хранилища Azure или создает новый, указывающий на службу Data Lake Storage 2-го поколения.
FolderPath
Указывает путь к папке для перечисления файлов.
ПоискRecursively
Указывает, следует ли выполнять рекурсивный поиск в заданной папке.
Примечания о настройке разрешений для субъекта-службы
Права доступа к Data Lake Storage 2-го поколения определяются как управлением доступом на основе ролей (RBAC), так и списками управления доступом (ACL). Обратите внимание, что списки управления доступом настроены с помощью идентификатора объекта (OID) субъекта-службы для регистрации приложения. Узнайте , как правильно задать списки управления доступом для субъекта-службы? Это отличается от идентификатора приложения (клиента), используемого с конфигурацией RBAC. Когда субъекту безопасности предоставляются разрешения на данные RBAC посредством встроенной или пользовательской роли, эти разрешения сначала оцениваются при авторизации запроса. Если запрошенная операция разрешена в соответствии с назначенными субъекту безопасности ролями RBAC, авторизация происходит немедленно и дополнительные проверки ACL не проводятся. Если же субъекту безопасности роль RBAC не назначена или если запрошенная операция не соответствует предоставленному разрешению, проводятся проверки ACL, цель которых — определить, разрешено ли субъекту безопасности выполнять запрошенную операцию. Чтобы перечислитель работал, необходимо предоставить по крайней мере разрешение на выполнение начиная с корневой файловой системы, а также разрешение на чтение целевой папки. Кроме того, назначьте как минимум роль Storage Blob Data Reader с помощью RBAC. Подробные сведения см. в этой статье.
Страница «Сопоставления переменных» — редактор цикла foreach
Используйте страницу Сопоставления переменных диалогового окна Редактор цикла Foreach, чтобы сопоставить переменные со значением коллекции. Значение переменной обновляется значениями из коллекции при каждом повторе цикла.
Руководство по созданию простого пакета ETL в Microsoft SQL Server Integration Services содержит урок, который учит добавлять и настраивать цикл foreach.
Параметры
Переменная
Выберите существующую переменную или нажмите Новая переменная..., чтобы создать новую переменную.
Примечание.
После сопоставления переменной новая строка автоматически добавляется в список Variable.
Связанные разделы: Переменные служб Integration Services (SSIS), Добавление переменной
Указатель
При использовании перечислителя Foreach Item укажите индекс столбца в значении коллекции, который следует сопоставить с переменной. Для других типов перечислителей индекс доступен только для чтения.
Примечание.
Индекс отсчитывается от 0.
Удаление
Выберите переменную и нажмите кнопку Удалить.
Диалоговое окно "Ограничения схемы" (ADO.NET)
Используйте диалоговое окно Ограничения схемы , чтобы установить ограничения схемы, которые необходимо применить к перечислителю набора строк схемы Foreach ADO.NET.
Параметры
Ограничения
Выберите ограничения, которые необходимо применить к схеме.
Переменная
Используйте переменную для определения ограничений. Выберите переменную в списке или щелкните Создать переменную..., чтобы создать ее.
Связанные разделы:Переменные служб Integration Services (SSIS) , Добавление переменной
Текст
Введите текст для определения ограничений.
диалоговое окно "Столбцы для каждого элемента"
Используйте диалоговое окно For Each Item Columns, чтобы определить столбцы в элементах, которые перебирает перечислитель Foreach Item.
Параметры
Столбец
Перечисляет столбцы.
Тип данных
Выберите тип данных.
Прибавить
Добавление нового столбца.
Удалить
Выберите столбец и нажмите Удалить.
диалоговое окно «Выбор перечисления SMO»
Используйте диалоговое окно «Выбор перечисления SMO», чтобы указать объект SQL Server Management Objects (SMO) на указанном экземпляре SQL Server, который требуется перечислить, и выбрать тип перечисления.
Параметры
Перечислить
Разверните сервер и выберите объект SMO.
Объекты
Применение типа перечисления объектов.
Предварительно заполнить
Используйте параметр Заполнить предварительно с типом перечисления «Объекты».
Имена
Применение типа перечисления имен.
URN
Используйте тип перечисления URN.
Расположения
Применение типа перечисления местонахождений. Этот параметр доступен только для файлов.
Используйте выражения свойств с контейнерами Foreach Loop
Пакеты можно настроить на одновременный запуск нескольких исполняемых объектов. Эту конфигурацию следует использовать с осторожностью, когда пакет включает контейнер цикла Foreach, использующий выражения свойств.
Часто полезно реализовать выражение свойства, чтобы задать значение свойства ConnectionString для диспетчеров соединений, используемых перечислителями контейнера "цикл Foreach". Выражение свойства ConnectionString устанавливается переменной, которая сопоставляется со значением коллекции перечислителя и обновляется при каждом повторении цикла.
Пакет необходимо настроить на запуск только одного исполняемого объекта в каждый момент времени. Это позволит избежать негативного влияния неопределенности временных рамок действий, присущей параллельному выполнению задач в цикле. Например, если пакет может выполнять несколько задач параллельно, контейнер цикла Foreach, который перебирает файлы в папке, извлекает имена файлов, а затем использует задачу «Выполнение SQL» для вставки имён файлов в таблицу, может приводить к конфликтам записи, если два экземпляра задачи «Выполнение SQL» пытаются выполнить запись одновременно. Дополнительные сведения см. в разделе Использование выражений свойств в пакетах.