Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения:SQL Server
среда выполнения интеграции SSIS в Фабрика данных Azure
Ограничения предшествования связывают исполняемые объекты, контейнеры и задачи в пакетах в потоке управления и задают условия, определяющие, будут ли выполняться исполняемые объекты. Исполняемым объектом может быть контейнер «цикл For», контейнер «цикл Foreach» или контейнер последовательности, задача либо обработчик событий. Обработчики событий также используют управление очередностью для связывания своих исполняемых объектов в поток управления.
Ограничение предшествования связывает два исполняемых объекта: исполняемый объект-предшественник и зависимый исполняемый объект. Ограничивающий исполняемый объект выполняется перед исполняемым объектом с ограничением, и результат выполнения ограничивающего исполняемого объекта может определять, будет ли выполняться исполняемый объект с ограничением. На следующей диаграмме показаны два исполняемых элемента, связанные ограничением очередности.
При линейном потоке управления, то есть без ветвления, элементы управления очередностью сами управляют последовательностью, в которой запускаются задачи. Если поток управления разветвляется, среда выполнения Integration Services определяет порядок выполнения задач и контейнеров, которые непосредственно следуют за местом ветвления. Среда выполнения также определяет порядок выполнения не связанных между собой рабочих процессов в потоке управления.
Архитектура вложенных контейнеров Integration Services позволяет всем контейнерам, за исключением контейнера узла задач, который инкапсулирует только одну задачу, включать другие контейнеры, каждый из которых имеет собственный поток управления. Контейнеры «цикл For», «цикл Foreach» и контейнеры последовательностей могут включать несколько задач и другие контейнеры, которые, в свою очередь, также могут содержать несколько задач и других контейнеров. Например, пакет с задачей «Скрипт» и контейнером последовательности имеет управление очередностью, которое связывает задачу «Скрипт» и контейнер последовательности. Контейнер последовательности содержит три задачи «Скрипт», а его ограничения предшествования связывают эти три задачи «Скрипт» в поток управления. На приведённой ниже диаграмме показаны ограничения предшествования в пакете с двумя уровнями вложенности.
Так как пакет находится в верхней части иерархии контейнеров служб SSIS, несколько пакетов не могут быть связаны с ограничениями приоритета; однако можно добавить задачу "Выполнить пакет" в пакет и косвенно связать другой пакет с потоком управления.
Управление очередностью можно настроить следующими способами:
Укажите операцию оценки. Управление очередностью использует ограничение по значению, выражение, оба эти элемента или один из них для определения, выполняется ли исполняемый объект с ограничением.
Если управление очередностью использует результат выполнения, в качестве результата выполнения могут быть заданы успех, ошибка или завершение.
Если ограничение очередности использует результат вычисления, можно задать выражение, которое вычисляется в логическое значение.
Укажите, проверяется ли ограничение приоритета отдельно или вместе с другими ограничениями, применяемыми к ограничиваемому исполняемому объекту.
Операции оценки
Службы Integration Services предоставляют следующие операции оценки:
Ограничение, использующее только результат выполнения предшествующего исполняемого объекта, чтобы определить, должен ли выполняться зависимый исполняемый объект. Результатом выполнения исполняемого объекта предшествования может быть завершение, успех или сбой. Это операция по умолчанию.
Выражение, оцениваемое для определения, выполняется ли исполняемый объект с ограничением. Если выражение принимает значение true, выполняется ограниченный исполняемый файл.
Выражение и ограничение, объединяющие требования к результатам выполнения предшествующего исполняемого объекта и результатам, возвращаемым при вычислении выражения.
Выражение или ограничение, использующее либо результаты выполнения предшествующего исполняемого объекта, либо результаты, возвращаемые при вычислении выражения.
Конструктор служб SSIS использует цвет для определения типа ограничения приоритета. Ограничение Success обозначается зеленым цветом, ограничение Failure — красным, а ограничение Completion — синим. Чтобы отобразить текстовые метки в конструкторе служб SSIS, отображающие тип ограничения, необходимо настроить специальные возможности конструктора служб SSIS.
Выражение должно быть допустимым выражением служб SSIS, и оно может включать функции, операторы и системные и пользовательские переменные. Дополнительные сведения см. в разделах Выражения в службах Integration Services (SSIS) и Переменные в службах Integration Services (SSIS).
Результаты выполнения
Ограничение приоритета может использовать следующие результаты выполнения как отдельно, так и в сочетании с выражением.
Для завершения требуется лишь, чтобы предшествующий исполняемый объект был завершен, независимо от результата, чтобы зависимый исполняемый объект мог быть запущен.
Для успешного выполнения требуется, чтобы предшествующий исполняемый объект завершился успешно, прежде чем сможет выполняться зависимый исполняемый объект.
Сбой означает, что для выполнения зависимого исполняемого объекта предшествующий исполняемый объект должен завершиться со сбоем.
Примечание.
Только управления очередностью, являющиеся элементами одной коллекции Precedence Constraint , могут быть сгруппированы в логическом условии AND. Например, нельзя объединить ограничения предшествования из двух контейнеров цикла Foreach Loop.
Настройка свойств управления очередностью с помощью редактора управления очередностью
В SQL Server Data Tools (SSDT) откройте проект служб Integration Services, содержащий нужный пакет.
Чтобы открыть пакет, дважды щелкните его в обозревателе решений.
Перейдите на вкладку Поток управления .
Дважды щелкните ограничение очередности.
Открывается Редактор ограничения очередности.
В выпадающем списке операций оценки выберите операцию оценки.
В раскрывающемся списке «Значение» выберите результат выполнения предшествующего исполняемого элемента.
Если при выполнении операции оценки используется выражение, введите его в окне Выражение , а затем нажмите кнопку Проверка , чтобы оценить выражение.
Примечание.
В именах переменных учитывается регистр букв.
Если к исполняемому объекту ограничения подключено несколько задач или контейнеров, выберите Логическое И, чтобы указать, что результаты выполнения всех предшествующих исполняемых объектов должны иметь значение true. Выберите Логическое ИЛИ , если необходимо, чтобы только один исполняемый объект возвращал значение true.
Нажмите кнопку ОК , чтобы закрыть Редактор управления очередностью.
Чтобы сохранить обновленный пакет, выберите пункт Сохранить выбранные элементы в меню Файл .
Редактор ограничения предшествования
Диалоговое окно Редактор ограничений очередностью используется для настройки ограничений очередностью.
Параметры
Операция оценки
Укажите операцию вычисления, используемую ограничением предшествования. Операциями могут быть: Ограничение, Выражение, Выражение и ограничениеи Выражение или ограничение.
Ценность
Укажите ограничение по значению: Успешно, Сбойили Завершение.
Примечание.
Линия ограничения предшествования имеет зеленый цвет для Успеха, выделяется для Неудачи и имеет синий цвет для Завершения.
Выражение
При использовании действий Выражение, Выражение и ограничениеили Выражение или ограничениевведите выражение или запустите построитель выражений для создания выражения. Выражение должно иметь логическое значение.
Тестирование
Проверьте выражение.
Логическое И
Выберите, чтобы указать, что несколько ограничений очередности в одном исполняемом объекте должны учитываться вместе. Все ограничения должны иметь значение True.
Примечание.
Этот тип ограничения предшествования отображается в виде сплошной зелёной, выделенной или синей линии.
Логическое ИЛИ
Выберите, чтобы указать, что несколько ограничений очередности в одном исполняемом объекте должны учитываться вместе. По крайней мере, одно ограничение должно иметь значение True.
Примечание.
Этот тип ограничения предшествования отображается в виде пунктирной зеленой, выделенной или синей линии.
Задайте свойства ограничения предшествования в окне «Свойства»
В SQL Server Data Tools (SSDT) откройте проект служб Integration Services, содержащий пакет, который требуется изменить.
Чтобы открыть пакет, дважды щелкните его в обозревателе решений.
Перейдите на вкладку "Поток управления". В области конструктора вкладки "Поток управления" щелкните правой кнопкой мыши ограничение приоритета, а затем выберите пункт "Свойства". В окне «Свойства» измените значения свойств.
В окне Свойства задайте следующие свойства ограничений очередности для чтения и записи:
Свойство для чтения и записи Действие настройки Описание Предоставьте описание. EvalOp Выберите операцию оценки. Если выбрана одна из операций Expression, ExpressionAndConstantили ExpressionOrConstant , можно указать выражение. Выражение Если операция вычисления включает в себя выражение, введите выражение. Выражение должно иметь логическое значение. Дополнительные сведения о языке выражений см. в разделе Выражения в службах Integration Services (SSIS). LogicalAnd Установите значение LogicalAnd, чтобы указать, должно ли ограничение очередности оцениваться совместно с другими ограничениями очередности, если несколько исполняемых объектов предшествуют исполняемому объекту, для которого задано это ограничение, и связаны с ним. Имя. Обновите имя элемента управления очередностью. Показать аннотацию Укажите тип заметки, который должен использоваться. Выберите значение Never , чтобы отключить заметки, AsNeeded , чтобы разрешить заметки по запросу, ConstraintName , чтобы автоматически вставлять заметки, используя значения свойства Name, ConstraintDescription , чтобы автоматически вставлять заметки, используя значения свойства Description, и ConstraintOptions , чтобы автоматически вставлять заметки, используя значения свойств Value и Expression. Значение Если операция вычисления, указанная в свойстве EvalOP, содержит ограничение, выберите результат выполнения исполняемого объекта с ограничением. Закройте окно Свойства.
Чтобы сохранить обновленный пакет, выберите пункт Сохранить выбранные элементы в меню Файл .
Задать значение ограничения предшествования с помощью контекстного меню
В SQL Server Data Tools (SSDT) откройте проект служб Integration Services, содержащий нужный пакет.
Чтобы открыть пакет, дважды щелкните его в обозревателе решений.
Перейдите на вкладку Поток управления .
На поверхности конструктора на вкладке Поток управления щелкните правой кнопкой мыши ограничение очередности, а затем выберите пункт Успех, Сбой или Завершение.
Чтобы сохранить обновленный пакет, щелкните Сохранить выбранные элементы в меню Файл .
Добавить выражения к ограничениям предшествования
Элементы управления очередностью могут использовать выражение для определения зависимости между двумя исполняемыми объектами: приоритетным исполняемым объектом и исполняемым объектом с ограничением. Исполняемыми объектами могут быть задачи или контейнеры. Выражение можно использовать отдельно или в сочетании с результатом выполнения исполняемого файла с более высоким приоритетом. Выполнение любого исполняемого объекта может закончиться успешно или со сбоем. При настройке результата выполнения ограничения предшествования можно задать значение Success, Failure или Completion. Для варианта Успех требуется, чтобы предшествующий исполняемый объект завершился успешно; вариант Сбой требует, чтобы предшествующий исполняемый объект завершился с ошибкой; а Завершение означает, что зависимый исполняемый объект должен запускаться независимо от того, завершится ли предшествующая задача успешно или с ошибкой. Дополнительные сведения см. в статье Precedence Constraints.
Выражение должно принимать значение True или False и должно быть допустимым выражением Integration Services. Выражение может использовать литералы, системные и пользовательские переменные, а также функции и операторы, которые предоставляет грамматика выражений SSIS. Например выражение @Count == SQRT(144) + 10 использует переменную Count, функцию SQRT() и операторы сравнения (==) и сложения (+). Дополнительные сведения см. в разделе «Выражения Integration Services (SSIS)».
На следующей иллюстрации задача A связана с задачей B управлением очередностью, которое использует результат вычисления и выражение. Ограничение принимает значение Success, а выражением является @X >== @Z. Задача B является задачей с ограничением, которая запускается, только если задача A успешно завершается, а значение переменной X больше или равно значению переменной Z.
Исполняемые файлы также можно связать с помощью нескольких ограничений по приоритету, содержащих разные выражения. Например, на следующей иллюстрации задачи B и C связаны с задачей A ограничениями предшествования, в которых используются результаты выполнения и выражения. Оба значения ограничений установлены в Success. Одно ограничение очередности включает выражение @X >== @Z, а другое ограничение очередности — выражение @X < @Z. В зависимости от значения переменных X и Zбудет запущена либо задача C, либо задача B.
Можно добавить или изменить выражение с помощью редактора ограничений приоритета в конструкторе служб SSIS и окно свойств, которые предоставляет SQL Server Data Tools (SSDT). Однако окно свойств не поддерживает проверку синтаксиса выражения.
Если ограничение очередности включает выражение, на поверхности конструктора на вкладке Поток управления рядом с ограничением очередности появляется значок, а во всплывающей подсказке к этому значку отображается выражение.
Добавить выражение в ограничение очередности
В SQL Server Data Tools (SSDT) откройте проект служб Integration Services, содержащий нужный пакет.
Чтобы открыть пакет, дважды щелкните его в обозревателе решений.
Перейдите на вкладку Поток управления .
На поверхности конструктора на вкладке Поток управления дважды щелкните ограничение приоритета. Открывается Редактор ограничения очередности.
Выберите пункт Выражение, Выражение и ограничениеили Выражение или ограничение в списке Вычислительная операция .
Введите выражение в текстовое поле Выражение или запустите построитель выражений, чтобы создать выражение.
Чтобы проверить правильность синтаксиса выражения, нажмите кнопку Проверить.
Чтобы сохранить обновленный пакет, выберите пункт Сохранить выбранные элементы в меню Файл .
Объедините значения выполнения и выражения
В следующей таблице описаны результаты сочетания ограничения значения выполнения и выражения в ограничении предшествования.
| Операция оценки | Результат ограничения | Выражение вычисляется как | Ограниченный запуск исполняемого файла |
|---|---|---|---|
| Ограничение | Истина | Н/П | Истина |
| Ограничение | Неправда | Н/П | Неправда |
| Выражение | Н/П | Истина | Истина |
| Выражение | Н/П | Неправда | Неправда |
| Ограничение и выражение | Истина | Истина | Истина |
| Ограничение и выражение | Истина | Неправда | Неправда |
| Ограничение и выражение | Неправда | Истина | Неправда |
| Ограничение и выражение | Неправда | Неправда | Неправда |
| Ограничение или выражение | Истина | Истина | Истина |
| Ограничение или выражение | Истина | Неправда | Истина |
| Ограничение или выражение | Неправда | Истина | Истина |
| Ограничение или выражение | Неправда | Неправда | Неправда |
Сложные сценарии ограничений с несколькими ограничениями предшествования
Ограничение предшествования связывает два исполняемых объекта: две задачи, два контейнера или один объект каждого типа. Они известны как приоритетный исполняемый объект и исполняемый объект с ограничением. Исполняемый объект с ограничениями может иметь несколько элементов управления очередностью. Дополнительные сведения см. в статье Precedence Constraints.
Сборка сложных сценариев ограничений путем их группирования позволяет создавать сложный поток управления в пакетах. Например, на следующей иллюстрации задача Г связана с задачей А ограничением Success, задача Г связана с задачей Б ограничением Failure, а задача Г связана с задачей В ограничением Success. Ограничения предшествования между задачей Г и задачей А, между задачей Г и задачей Б, а также между задачей Г и задачей В образуют логическое отношение and. Таким образом, для запуска задачи Г должна успешно запуститься задача А, аварийно завершиться задача Б и успешно запуститься задача В.
Свойство LogicalAnd
Если задача или контейнер содержит несколько ограничений, свойство LogicalAnd определяет, оценивается ли ограничение очередности по отдельности или совместно с другими ограничениями.
Можно задать свойство LogicalAnd с помощью редактора ограничений приоритета в конструкторе служб SSIS или в окно свойств, которые предоставляет SQL Server Data Tools (SSDT).
Установите значение по умолчанию для ограничений приоритета
При первом использовании конструктора служб SSIS значение по умолчанию ограничения приоритета — Success. Выполните следующие действия, чтобы настроить конструктор служб SSIS для использования другого значения по умолчанию для ограничений приоритета.
откройте SQL Server Data Tools (SSDT).
В меню Сервис выберите пункт Параметры.
В диалоговом окне Параметры раскройте Конструкторы бизнес-аналитики, а затем раскройте Конструкторы служб интеграции.
Щелкните Автосоединение в потоке управления и выберите По умолчанию соединять новую фигуру с выбранной фигурой.
В выпадающем списке выберите либо Использовать ограничение на неудачу для новой фигуры , либо Использовать ограничение на завершение для новой фигуры.
Щелкните OK.
Создать ограничение предшествования по умолчанию
В SQL Server Data Tools (SSDT) откройте проект служб Integration Services, содержащий нужный пакет.
Чтобы открыть пакет, дважды щелкните его в обозревателе решений.
Перейдите на вкладку Поток управления .
На поверхности конструктора на вкладке Поток управления щелкните задачу или контейнер и перетащите его соединитель к исполняемому объекту, к которому нужно применить ограничение очередности.
Чтобы сохранить обновленный пакет, выберите пункт Сохранить выбранные элементы в меню Файл .