Контейнеры Integration Services

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

Контейнеры — это объекты в службах SQL Server Integration Services, которые предоставляют структуру пакетам и службам для задач. Они поддерживают повторение потоков управления в пакетах, а также группируют задачи и контейнеры в единые рабочие объекты. Кроме задач контейнеры могут включать другие контейнеры.

Пакеты используют контейнеры для следующих целей.

  • Повторяйте задачи для каждого элемента коллекции, например файлов в папке, схемах или объектах SMO. Например, пакет может выполнять инструкции Transact-SQL, размещенные в нескольких файлах.

  • Повторение задач до тех пор, пока значение определенного выражения не будет равно false. Например, пакет может посылать разные сообщения по электронной почте семь раз, один раз в каждый день недели.

  • Группируйте задачи и контейнеры, которые должны выполняться успешно или завершаться с ошибкой как единое целое. Например, пакет может группировать задачи, удаляющие и добавляющие строки в таблице базы данных, а затем фиксировать их или же производить откат всех задач в случае сбоя одной из них.

Типы контейнеров

Службы Integration Services предоставляют четыре типа контейнеров для создания пакетов. В следующей таблице перечислены типы контейнеров.

Контейнер Описание
Контейнер цикла Foreach Многократно выполняет поток управления с помощью перечислителя.
Контейнер «цикл по элементам» Повторяет запуск потока управления с проверкой условия.
Контейнер последовательностей Группирует задачи и контейнеры в потоки управления, являющиеся частью потока управления пакета.
Контейнер «Сервер задач» Обеспечивает поддержку служб для отдельной задачи.

Пакеты и обработчики событий также являются типами контейнеров. Дополнительные сведения см. в разделах Пакеты Integration Services (SSIS) и Обработчики событий Integration Services (SSIS).

Сводка свойств контейнера

Все типы контейнеров имеют набор общих свойств. Если вы создаете пакеты с помощью графических средств, предоставляемых службой Integration Services, окно "Свойства" отображает следующие свойства для контейнеров "Цикл Foreach", "Цикл For" и "Последовательность". Настройка свойств контейнера сервера задач является частью настройки задачи, которую инкапсулирует сервер задач. При настройке задачи настраиваются и свойства сервера задачи.

Свойство Описание
DelayValidation Логическое значение, указывающее, откладывается ли проверка контейнера до времени выполнения. Значение этого свойства по умолчанию — False.

Дополнительные сведения см. в разделе DelayValidation.
Description Описание контейнера. Свойство содержит строку, но может быть пустым.

Дополнительные сведения см. в разделе Description.
Отключить Логическое значение, указывающее, запущен ли контейнер. Значение этого свойства по умолчанию — False.

Дополнительные сведения см. в разделе Disable.
DisableEventHandlers Логическое значение, указывающее, связаны ли обработчики событий с запуском контейнера. Значение этого свойства по умолчанию — False.
FailPackageOnFailure Логическое значение, указывающее, завершается ли пакет с ошибкой при возникновении ошибки в контейнере. Значение этого свойства по умолчанию — False.

Дополнительные сведения см. в разделе FailPackageOnFailure.
FailParentOnFailure Логическое значение, указывающее, завершается ли родительский контейнер с ошибкой при возникновении ошибки в контейнере. Значение этого свойства по умолчанию — False.

Дополнительные сведения см. в разделе FailParentOnFailure.
ForcedExecutionValue Если свойство ForceExecutionValue равно True, объект содержит необязательное значение выполнения для контейнера. Значение этого свойства по умолчанию равно 0.

Дополнительные сведения см. в разделе ForcedExecutionValue.
ForcedExecutionValueType Тип данных ForcedExecutionValue. Значение по умолчанию этого свойства равно Int32.
ForceExecutionResult Значение, определяющее вынужденный результат запуска пакета или контейнера. Значения: None, Success, Failure и Completion. Значение этого свойства по умолчанию — None.

Дополнительные сведения см. в разделе ForceExecutionResult.
ForceExecutionValue Логическое значение, указывающее, следует ли принудительно задавать для необязательного значения выполнения контейнера определённое значение. Это свойство имеет значение по умолчанию False.

Дополнительные сведения см. в разделе ForceExecutionValue.
ИД Идентификатор GUID контейнера, назначаемый ему при создании пакета. Это свойство доступно только для чтения.

ID.
IsolationLevel Уровень изоляции контейнерной транзакции. Допустимые значения — Unspecified, Chaos, ReadUncommitted, ReadCommitted, RepeatableRead, Serializableи Snapshot. Значение по умолчанию этого свойства равно Serializable. Дополнительные сведения см. в разделе IsolationLevel.
LocaleID Локаль Microsoft Win32. Значение этого свойства по умолчанию равно локали операционной системы на локальном компьютере.

Дополнительные сведения см. в разделе LocaleID.
LoggingMode Значение, определяющее для контейнера режим записи в журнал. Допустимые значения — Disabled, Enabledи UseParentSetting. Значение по умолчанию этого свойства равно UseParentSetting. Дополнительные сведения см. в разделе DTSLoggingMode.
MaximumErrorCount Максимальное число ошибок, после которого контейнер останавливается. Значение этого свойства по умолчанию равно 1.

Дополнительные сведения см. в разделе MaximumErrorCount.
Имя Имя контейнера.

Дополнительные сведения см. в разделе Name.
TransactionOption Участие контейнера в транзакции. Допустимые значения — NotSupported, Supported, Required. Значение по умолчанию этого свойства равно Supported. Дополнительные сведения см. в разделе DTSTransactionOption.

Чтобы ознакомиться со всеми свойствами, доступными для контейнеров Foreach Loop, For Loop, Sequence и Task Host при их программной настройке, см. следующие разделы API Integration Services:

  • T:Microsoft.SqlServer.Dts.Runtime.ForEachLoop

  • T:Microsoft.SqlServer.Dts.Runtime.ForLoop

  • T:Microsoft.SqlServer.Dts.Runtime.Sequence

  • T:Microsoft.SqlServer.Dts.Runtime.TaskHost

Объекты, расширяющие функциональные возможности контейнеров

Контейнеры включают в себя потоки управления, которые состоят из исполняемых объектов и ограничений очередностью, а также могут использовать обработчики событий и переменные. Контейнер сервера задач является исключением из правила: так как он инкапсулирует единственную задачу, не используется никаких элементов управления очередностью.

Исполняемые объекты

Исполняемыми объектами называются задачи уровня контейнера, а также любые контейнеры внутри контейнера. Исполняемый файл может быть одним из задач и контейнеров, предоставляемых службами Integration Services или пользовательской задачей. Дополнительные сведения см. в разделе Integration Services Tasks.

Ограничения предшествования

Ограничения предшествования связывают контейнеры и задачи внутри одного и того же родительского контейнера в упорядоченный поток управления. Дополнительные сведения см. в статье Precedence Constraints.

Обработчики событий

Обработчики события на уровне контейнера реагируют на события, инициируемые контейнером или объектами, содержащимися в нем. Дополнительные сведения см. в разделе Обработчики событий Integration Services (SSIS).

Переменные

Переменные, используемые в контейнерах, включают системные переменные уровня контейнера, предоставляемые службами Integration Services, и определяемые пользователем переменные, используемые контейнером. Дополнительные сведения см. в статье Переменные в службах Integration Services (SSIS).

Точки останова

При установке точки останова в контейнере и условии останова Прерывание, когда контейнер получает событие OnVariableValueChanged, определите переменную в области контейнера.