问题描述
场景: 需要知道使用 azure 数据工厂的复制活动从源复制到目标的文件名。
问题: 获取元数据可用于获取文件名。但是,如果文件夹中存在多个文件,我们如何知道复制了哪个文件。
解决方法
也许您可以尝试按上次修改时间进行过滤。开始时间使用这个表达式:
@activity('Copy data1').output.executionDetails[0].start
结束时间使用 @utcnow()
如果您想通过内置的 ADF 活动实现需求,则需要遵循以下流程,否则可以通过 python(Azure 函数)或 csutom 活动轻松实现。
-
创建 2 个变量: MaxLastProcessedDate = 1900-01-01 最新文件
-
在文件夹级别使用 GetMetaDataActivity 获取 childItems 列表
-
使用 childitems 字段的输出作为 foreach 循环活动的输入
-
在 Foreach 中: a) 文件级别的 GetMetaDataActivity(因为每次迭代都针对每个文件) b) 如果条件活动(如果 getmetadata 活动的 lastmodifieddate > MaxLastProcessedDate)
如果为 true:将 MaxLastProcessedDate 变量更新为 getmetadata 活动的 lastmodifieddate,并将 LatexFile 变量更新为该迭代的文件名。