首页 > 解决方案 > 获取文件夹中最新添加的文件 [Azure 数据工厂]

问题描述

在数据湖里面,我们有一个文件夹,里面基本上就是每天外源推送的文件。但是,我们只想处理该文件夹中最新添加的文件。有没有办法通过 Azure 数据工厂实现这一目标?

标签: azureazure-data-factoryazure-data-lakelast-modified

解决方案


当您在复制活动中使用 ADLS 连接器时,您可以设置modifiedDatetimeStart 和 modifiedDatetimeEnd来过滤文件夹中的文件。

可能有两种情况:

1.排程中​​的数据是由外部源推送的您应该知道排程时间来配置。

2.频率是随机的,那么可能你必须在另一个住所记录推送数据的时间,然后将时间作为参数传递到复制活动管道中,然后再执行它。


我尝试在 ADF 管道中为您提供如下流程:

我在同一文件夹中的示例文件:

在此处输入图像描述

Step1,创建两个变量,maxtime和filename:

maxtime 是特定日期的关键日期时间,文件名是空字符串。

在此处输入图像描述

Step2,使用GetMetadata Activity和ForEach Activity获取文件夹下的文件。

在此处输入图像描述

获取元数据 1 配置:

在此处输入图像描述

ForEach 活动配置:

在此处输入图像描述

Step3:在ForEach Activity内部,使用GetMetadata和If-Condition,结构如下:

在此处输入图像描述

获取元数据 2 配置:

在此处输入图像描述

If-Condition Activity 配置:

在此处输入图像描述

Step4:在 If-Condition True 分支中,使用 Set Variable Activity:

在此处输入图像描述

设置 variable1 配置:

在此处输入图像描述

设置 variable2 配置:

在此处输入图像描述

以上所有步骤都是为了找到最新的文件名,变量文件名正是目标。


在 GetMetadata 2 中添加另一个新数据集

在此处输入图像描述


推荐阅读