Действие фабрики данных Azure выполняется после завершения всех остальных действий по копированию данных.

У меня есть конвейер фабрики данных Azure V2 с несколькими параллельными операциями копирования данных.

введите здесь описание изображения

У меня есть веб-перехватчик Pause DW, который приостанавливает хранилище данных Azure после каждого запуска. Это действие настроено на запуск после завершения одного из самых длительных действий в конвейере. Трубопровод настроен на срабатывание каждую ночь.

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

Как лучше всего запустить действие только после того, как все остальные действия в конвейере будут завершены?

Я попытался добавить действие If в конвейер следующим образом:

введите здесь описание изображения

Однако затем я сталкиваюсь с этой ошибкой во время проверки:

If Condition1 На результат действия "Копировать небольшие таблицы" нельзя ссылаться, поскольку он не имеет вывода.

введите здесь описание изображения

Кто-нибудь знает, как я могу двигаться дальше?

Благодарность


person ossentoo    schedule 01.07.2019    source источник


Ответы (2)


Просто координируйте все свои параллельные действия в направлении действия PAUSE DWH. Затем он будет выполнен после того, как все ваши действия будут завершены.

person DraganB    schedule 01.07.2019
comment
спасибо за ответ DraganB. Я не понимаю, что вы имеете в виду. Я не хочу добавлять действия в один прямой конвейер, чтобы все элементы выполнялись последовательно, потому что это займет в 5-10 раз больше времени. - person ossentoo; 01.07.2019
comment
Их не нужно запускать последовательно, просто у вас должна быть оркестровка от всех параллельных действий до паузы dwh. Это означает выполнение pause dwh, когда все действия будут завершены. Веб-ловушка Pause DWH должна зависеть от всех параллельных действий, если вы хотите быть уверены, что она будет выполняться, когда все будет завершено. - person DraganB; 01.07.2019
comment
Отлично - теперь я понимаю, что вы имеете в виду: большое спасибо. Вроде работает. Я буду пробовать это в течение следующих нескольких дней и, надеюсь, не получу никаких ошибок. - person ossentoo; 02.07.2019

Я думаю, вы можете использовать действие конвейера Execute.

Пусть триггер указывает на новый конвейер, в котором есть действие «Выполнить», которое указывает на текущий ADF с активностью копирования, выберите вариант «Дополнительно» -> «Дождаться завершения». После завершения конвейера выполнения следует перейти к активности веб-перехватчика, которая должна иметь логику для приостановки DW.

Сообщите мне, как это происходит.

person HimanshuSinha-msft    schedule 01.07.2019