在文件夹 [Azure 数据工厂] 中获取最新添加的文件
get the latest added file in a folder [Azure Data Factory]
在Data Lake里面,我们有一个文件夹,基本上就是每天外源推送的文件。但是,我们只想处理该文件夹中最新添加的文件。
有什么方法可以通过 Azure 数据工厂实现吗?
您可以设置modifiedDatetimeStart and modifiedDatetimeEnd在副本activity中使用ADLS连接器时过滤文件夹中的文件activity。
可能有两种情况:
1.The 数据由外部源推送 在时间表中 ,您应该知道要配置的时间表时间。
2.The频率是随机,那可能你要在别处记录推送数据的时间,然后把时间作为参数传入copyactivity 执行之前的管道。
我尝试在 ADF 管道中为您提供如下流程:
我在同一文件夹中的示例文件:
第一步,创建两个变量,maxtime 和 filename:
maxtime为特定日期的关键日期时间,filename为空字符串。
第二步,使用GetMetadataActivity和ForEachActivity获取文件夹下的文件。
获取元数据 1 配置:
ForEach Activity配置:
第三步:在ForEachActivity内部,使用GetMetadata和If-Condition,结构如下:
获取元数据 2 配置:
If-Condition Activity 配置:
Step4: 在 If-Condition True 分支内,使用 Set Variable Activity:
设置变量 1 配置:
设置变量 2 配置:
以上所有步骤都是为了找到最新的文件名,变量文件名正是目标。
在 GetMetadata 2 中添加了另一个新数据集
您可以使用 Modified datetime start 和 Modified datetime end 字段,如下面的屏幕截图所示。
此处的示例显示从当前日期时间开始的 24 小时内获取文件。
在Data Lake里面,我们有一个文件夹,基本上就是每天外源推送的文件。但是,我们只想处理该文件夹中最新添加的文件。 有什么方法可以通过 Azure 数据工厂实现吗?
您可以设置modifiedDatetimeStart and modifiedDatetimeEnd在副本activity中使用ADLS连接器时过滤文件夹中的文件activity。
可能有两种情况:
1.The 数据由外部源推送 在时间表中 ,您应该知道要配置的时间表时间。
2.The频率是随机,那可能你要在别处记录推送数据的时间,然后把时间作为参数传入copyactivity 执行之前的管道。
我尝试在 ADF 管道中为您提供如下流程:
我在同一文件夹中的示例文件:
第一步,创建两个变量,maxtime 和 filename:
maxtime为特定日期的关键日期时间,filename为空字符串。
第二步,使用GetMetadataActivity和ForEachActivity获取文件夹下的文件。
获取元数据 1 配置:
ForEach Activity配置:
第三步:在ForEachActivity内部,使用GetMetadata和If-Condition,结构如下:
获取元数据 2 配置:
If-Condition Activity 配置:
Step4: 在 If-Condition True 分支内,使用 Set Variable Activity:
设置变量 1 配置:
设置变量 2 配置:
以上所有步骤都是为了找到最新的文件名,变量文件名正是目标。
在 GetMetadata 2 中添加了另一个新数据集
您可以使用 Modified datetime start 和 Modified datetime end 字段,如下面的屏幕截图所示。
此处的示例显示从当前日期时间开始的 24 小时内获取文件。