Azure Data Factory 生成含自增序号文件名的DAT文件方案咨询
Azure Data Factory 自增序列文件名配置方案
步骤1:读取序号文件获取当前序列值
在管道中添加Lookup活动,指向你预先创建的纯数字序号文件(例如存储在ADLS/Blob中的current_seq.txt,初始内容可设为1),勾选Lookup活动配置中的仅返回第一行选项。
读取完成后,可通过以下表达式获取序列值:
- 若序号文件无表头:
@activity('LookupCurrentSeq').output.firstRow.Prop_0 - 若序号文件有表头(例如序列列名为
seq):@activity('LookupCurrentSeq').output.firstRow.seq
步骤2:为Data Flow配置序列参数
- 打开目标Data Flow,点击画布空白处,在右侧面板的参数标签页新增自定义参数,例如命名为
fileSeq,类型选择字符串即可。 - 进入Data Flow的Sink组件配置,在设置标签页的文件名选项选择动态生成,输入文件名表达式:
concat('File_Data_', $fileSeq, '.DAT'),注意使用$符号引用刚才定义的参数。
步骤3:管道中给Data Flow传递序列参数
回到管道画布,选中添加的Data Flow活动,进入参数标签页,找到刚才定义的fileSeq参数,值填入Lookup活动读取到的序列值表达式,示例:@string(activity('LookupCurrentSeq').output.firstRow.Prop_0)
步骤4:完成文件生成后更新序号值
在Data Flow活动的成功依赖节点后,新增如下操作更新序号文件:
- 先通过Set Variable活动计算新的序列值:
@string(add(int(activity('LookupCurrentSeq').output.firstRow.Prop_0), 1)) - 再添加复制活动,将新的序列值写入原序号文件,选择覆盖原有文件即可,下次运行时即可读取到更新后的序列值。
常见配置排查点
- 先单独运行Lookup活动,确认输出结果中的序列值无多余空格、换行符,取值路径正确
- Data Flow定义的参数名称、大小写,需要和管道中Data Flow活动参数配置的内容完全一致,ADF参数区分大小写
- Sink文件名表达式中不要遗漏参数前的
$符号,字符串拼接必须使用concat函数
内容的提问来源于stack exchange,提问作者Anh Tuan Nguyen
相关产品推荐
相关产品推荐

