如何通过ADF将ADLS2中按业务单元命名的文件分存至对应容器?
ADF实现文件按业务单元复制到对应容器方案
整体流程概述
基于你已有的元数据识别txt文件、ForEach循环的基础,以下是具体落地步骤:
步骤1:提取业务单元标识
在ForEach循环内,先通过Set Variable活动从文件名中拆分出业务单元(XYZ/ABC):
- 变量类型设置为字符串
- 使用表达式解析文件名前缀:
说明:@split(item().Name, '_')[0]item().Name是元数据活动返回的当前循环文件名,split函数按下划线分割后取第一个元素即为业务单元标识。
步骤2:用Switch活动路由复制逻辑
Set Variable完成后添加Switch活动,以提取到的业务单元变量作为判断条件:
- 为每个业务单元(XYZ、ABC)单独配置分支:
- XYZ分支:配置Copy活动,源为当前循环的txt文件,目标指向XYZ业务对应的ADLS2容器
- ABC分支:配置Copy活动,源为当前循环的txt文件,目标指向ABC业务对应的ADLS2容器
- 可选添加默认分支:处理不符合命名规则的文件,比如存入错误容器或触发告警通知
关键配置细节
- 元数据活动:确保仅返回.txt文件,可通过筛选条件
@endsWith(item().Name, '.txt')实现 - ForEach循环:根据性能需求选择"Sequential"(顺序执行)或并行执行模式
- Copy活动:源数据集需动态指定当前文件路径,可使用
@item().Path作为文件路径参数
内容的提问来源于stack exchange,提问作者kaytee
相关产品推荐
相关产品推荐

