Azure Data Factory中Dataflow与Foreach循环集成及动态增量加载求助
Azure Data Factory 增量加载解决方案(仅用Dataflow)
1. 参数化源/目标数据集
- 为数据湖源数据集添加两个字符串参数:
folderName、fileName - 源数据集文件路径配置为:
@concat(dataset().folderName, '/', dataset().fileName) - Blob目标数据集添加字符串参数
fileName,路径配置为:@dataset().fileName,确保文件名与源完全一致
2. 获取顶层文件夹列表
- 添加Get Metadata活动(命名为
Get_Folders),指向数据湖根容器,勾选子项,获取a、b、c三个文件夹的元数据
3. 外层Foreach遍历文件夹
- 外层Foreach活动的项设置为:
@activity('Get_Folders').output.childItems - 循环内部添加第二个Get Metadata活动(命名为
Get_Files),路径设置为@item().name,勾选子项和最后修改时间(用于增量逻辑判断)
4. 内层Foreach遍历文件并触发Dataflow
- 内层Foreach活动的项设置为:
@activity('Get_Files').output.childItems - 循环内添加Dataflow活动,参数配置:
- 源数据集参数:
folderName填@item().parent.name,fileName填@item().name - 目标数据集参数:
fileName填@item().name - Dataflow内部用
$dataset.fileName和$dataset.lastModified(若需)绑定已实现的增量逻辑
- 源数据集参数:
5. 关键注意事项
- 无需额外变量存储元数据输出,直接通过Foreach的
@item()传递参数即可 - 若需控制并发避免资源冲突,可在外层/内层Foreach中勾选Sequential选项
- 确保Dataflow中增量逻辑与传入的数据集参数关联,比如用文件名或最后修改时间作为增量筛选条件
内容的提问来源于stack exchange,提问作者Rajat Saha
相关产品推荐
相关产品推荐

