#ssis
#ssis
Вопрос:
Возможно ли вставить задачу потока данных между двумя существующими задачами в пакете SSIS?
У меня есть поток данных, который находится в довольно хорошей форме. Во время тестирования логики потока данных я обнаружил, что мне нужна дополнительная задача потока данных между существующими.
Возможно ли вставить новую задачу между существующими задачами?
Ответ №1:
Решение:
Вам нужно удалить Precedence Constraint
соединяющую две задачи потока управления, а затем перетащить новую задачу между двумя существующими задачами. Подключите ограничение приоритета от первой задачи к новой задаче и ограничение приоритета от новой задачи к существующей второй задаче.
Precedence Constraint
это стрелка между двумя задачами потока управления, которая обозначает направление потока. Стрелка может отображаться в green
, red
или blue
цветах в зависимости от условия, используемого для направления потока.
Внимание:
Если в Precedence Constraint
есть выражение, вы должны записать, что это за выражение, прежде чем удалять ограничение приоритета. Возможно, вам потребуется снова использовать это выражение после введения новой задачи.
Пакет SSIS 2012, иллюстрирующий шаги:
Предположим, что у вас есть пакет SSIS с именем SO_6115881.dtsx
. Внутри пакета у вас есть две задачи потока данных на вкладке Поток управления. На скриншоте ниже показано, что для ограничения приоритета нет выражений или ограничений (зеленая стрелка).
Если у вас было выражение, определенное для ограничения приоритета, в ограничении приоритета появятся буквы fx.
Вы можете дважды щелкнуть ограничение приоритета, чтобы просмотреть Precedence Constraint Editor
, чтобы отметить используемое выражение. Здесь ограничение приоритета использует выражение, @[User::IsValid] == True
чтобы проверить, принимает ли переменная пакета @[User::IsValid]
значение true или нет.
Давайте предположим, что между двумя существующими задачами потока управления нет выражений. Чтобы удалить ограничение приоритета, щелкните на нем и нажмите Delete или щелкните правой кнопкой мыши на ограничении приоритета и нажмите Delete
.
После удаления ограничения приоритета перетащите следующую задачу потока управления между двумя существующими задачами. Перетащите ограничение приоритета из задачи Data Flow Task 1
и подключите его к новой задаче New Data Flow Task
.
Перетащите ограничение приоритета из новой задачи New Data Flow Task
и подключите его к задаче Data Flow Task 2
. Теперь новая задача потока управления должна быть успешно добавлена между двумя существующими задачами. Если у вас было выражение, дважды щелкните соответствующее ограничение приоритета, чтобы добавить выражение.
Комментарии:
1. Могу ли я сделать это, не удаляя существующее ограничение приоритета? Описанный выше метод хорош, если не слишком много задач управления.
2. С сожалением должен сказать, что в 2021 году это все еще проблема. Я ненавижу перемещение стрелок из-за этой точной проблемы с выражениями ограничений.