【问题标题】:ADF Delta Copy Activity fails, delete partly copied file from data lakeADF 增量复制活动失败,从数据湖中删除部分复制的文件
【发布时间】:2021-06-25 14:16:24
【问题描述】:

我有一个每小时增量加载管道,因为我有一个复制活动,用于将数据从 sql server 复制到具有文件夹结构 (YY/MM/DD/table_nameHH) 的 Datalake Parquet 格式,对于每个活动:

复制活动后,我有成功/失败过程来更新控制表中的记录

我需要确保两者之间是否有任何复制活动失败,我需要从数据湖中删除部分复制的文件。如何在我的管道中使用该条件来挑选和删除该动态文件。

提前致谢

p.s 我对这个工具很陌生,每天都在学习。

【问题讨论】:

  • 嗨@Kumar AK,希望你做得很好。如果我的回答对你有帮助,希望你能采纳。这对其他社区成员可能是有益的。谢谢。
  • 您还有其他顾虑吗?
  • 感谢 Leon 的意见。你说如果条件应该在复制活动后面?那么如果我们在复制之前添加复制活动,我们如何获得 @equals(activity('Copy_Dimcustomer_AC').output.executionDetails.status,'Succeeded') 呢?你的意思是我需要在复制后添加吗?如果我在复制过程中添加副本,如果它失败了,那么我们的 if 条件将不适用于失败情况,对吧?
  • 嗨@Kumar AK,这是复制活动的输出,我们可以从输出的JSON字符串中获取复制活动状态。根据状态值,我们可以知道复制活动是成功还是失败。我根据我对你的截图的理解做了这个例子。在每个内在活动中,它实际上是一个流动。如果条件为真,则运行真正的活动流,否则为假活动流。您可以从 if 条件文档中获得更多详细信息。
  • 如果对你有帮助请告诉我,谢谢~

标签: azure azure-data-factory azure-data-factory-2 azure-data-lake-gen2


【解决方案1】:

请参考以下步骤:

您可以在Copy_DimCustomer_AC 活动后面添加If condition

在If条件表达式中,构建表达式判断Copy_DimCustomer_AC.executionDetails.status是否等于“Succeeded”,如果为true,则复制活动成功:

@equals(activity('Copy_Dimcustomer_AC').output.executionDetails.status,'Succeeded')

真正的活跃度:

假激活:添加删除激活删除文件并运行Log_failure_status_AC

HTH。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-12
    • 1970-01-01
    • 2019-10-05
    • 1970-01-01
    • 2019-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多