#azure #azure-data-factory #azure-data-factory-2 #azure-data-lake-gen2
#azure #azure-data-factory #azure-data-factory-2 #azure-data-lake-gen2
Вопрос:
У меня есть почасовой конвейер дельта-загрузки, в котором у меня есть операция копирования для копирования данных с sql server в формат datalake parquet со структурой папок (YY / MM / DD / table_nameHH) для каждого действия:
после операции копирования у меня есть процедура успешного / неудачного обновления записей в контрольной таблице
мне нужно убедиться, что в случае сбоя какой-либо операции копирования между ними мне нужно удалить этот частично скопированный файл из озера данных. как установить это условие для выбора и удаления этого динамического файла в моем конвейере.
Заранее спасибо
p.s я довольно новичок в этом инструменте и ежедневно учусь.
Комментарии:
1. Привет @Kumar AK, надеюсь, у тебя все хорошо. Если мой ответ полезен для вас, надеюсь, вы сможете принять его как ответ. Это может быть полезно для других членов сообщества. Спасибо.
2. У вас есть какие-либо другие проблемы?
3. Спасибо Leon за ваш вклад. Вы сказали, должно ли условие стоять за действием копирования? тогда как мы можем получить @equals(activity(‘Copy_Dimcustomer_AC’).output.executionDetails.status,’Successed’), если мы добавим действие копирования перед копированием? вы имеете в виду, нужно ли добавлять после копирования? если я добавлю копию после этого во время копирования, если это сбой, то наше условие if не будет работать для случаев сбоя, верно?
4. Привет @Kumar AK, это вывод активной копии, мы можем получить статус активной копии из выходной строки JSON. В соответствии со значением статуса мы можем узнать, удалось ли выполнить активное копирование успешно или не удалось. Я привел пример в соответствии с моим пониманием ваших скриншотов. В каждом внутреннем активе это фактически поток. Если условие if истинно, запустите true active flow, false до false active flow. Вы можете получить более подробную информацию из документа условия if.
5. Пожалуйста, дайте мне знать, если это полезно для вас, спасибо ~
Ответ №1:
Пожалуйста, выполните следующие действия:
Вы могли бы добавить условие If за Copy_DimCustomer_AC
активным:
В выражениях условий If создайте выражение, чтобы определить, Copy_DimCustomer_AC.executionDetails.status
равно ли оно «Успешно», если нет, то копирование выполнено успешно:
@equals(activity('Copy_Dimcustomer_AC').output.executionDetails.status,'Succeeded')
Истинные активные:
False active: добавьте команду delete active для удаления файла и запустите Log_failure_status_AC
:
HTH.