如何获取ADLS Gen2容器子文件夹内最新添加的文件
在Azure Data Factory中搜索容器子文件夹并获取最新文件
一、ADF内实现子文件夹文件检索的方法
1. 递归遍历子文件夹
使用ADF的Get Metadata活动,配置时开启递归扫描选项(在数据集连接设置或活动高级配置中启用),同时在字段列表勾选Child Items。该配置会返回容器下所有层级的文件与文件夹信息,无需单独指定子文件夹路径。
2. 筛选最新文件
获取全量文件列表后,可通过两种方式筛选最新文件:
- 用Filter活动结合文件的
lastModified属性,筛选出晚于上次同步时间的文件,再通过Sort活动按lastModified降序排列,取第一个即为最新文件。 - 直接用表达式处理Get Metadata的输出,示例:
该表达式会直接返回最新修改的文件对象。@arrayFirst(sort(activity('Get Metadata').output.childItems, desc(@item().lastModified)))
3. 同步至Azure SQL Database
获取目标文件后,根据文件格式选择对应方式同步:
- 若为结构化文件(CSV/Parquet等),直接用Copy Data活动将文件数据写入SQL表。
- 若需复杂数据处理,先通过Lookup活动读取文件内容,再用Stored Procedure活动调用SQL存储过程完成数据插入。
二、ADF之外的替代方案
如果ADF配置无法满足需求,可选择以下方案:
- Azure Logic Apps:使用Blob存储触发器,开启递归监控子文件夹,新文件添加时自动触发流程,通过内置连接器完成文件信息读取与SQL写入,配置直观。
- Azure Function:编写C#/Python函数,定时调用Blob Storage SDK递归扫描容器,自定义逻辑筛选最新文件后同步至SQL,灵活性强,适合复杂业务场景。
- Power Automate:低代码场景首选,通过内置连接器实现Blob文件监控与SQL数据写入,操作简单易上手。
内容的提问来源于stack exchange,提问作者mkn
相关产品推荐
相关产品推荐

