Azure Data Factory数据流归档CSV指定带时间戳文件名问题咨询
问题根因
你遇到的两个问题分别对应两个配置错误:
- 你将完整文件名写入了「文件夹路径」配置项,系统会将整段字符串识别为文件夹层级,因此生成了带
.csv后缀的同名文件夹 - 默认分布式写入任务(ADF/Synapse的复制活动、数据流默认配置)会将数据拆分为多个分片写入,因此生成了
part-00000-前缀的分片文件
正确配置步骤
1. 拆分目录与文件名配置
- 「文件夹路径」配置项仅填写父级目录即可:
SalesDepartment/Warehouse1/ - 找到配置页中单独的「文件名/输出文件名」配置项,填入动态命名表达式:
若需要使用东八区时间戳,可将表达式调整为:concat('SaleData_',toString(currentTimestamp(),'yyyyMMdd_HHmm'),'.csv')concat('SaleData_',toString(currentTimestamp('Asia/Shanghai'),'yyyyMMdd_HHmm'),'.csv')
2. 开启单文件输出避免分片
根据你使用的工具调整对应配置:
- 如果是Azure数据工厂(ADF)/Synapse 复制活动:
在接收器(Sink)配置页找到「复制行为」,选择合并文件,勾选「作为单个文件写入」即可。注意单文件写入仅适合2GB以内的源文件,过大会拉长任务运行时间、增加资源占用。 - 如果是ADF/Synapse 数据流归档:
在Sink节点的「设置」页,将「分区选项」改为单分区,关闭「输出到多个文件」开关,勾选「指定文件名」后填入上述动态文件名表达式即可。
额外注意
如果是合并多个源CSV归档,需要提前确认所有源文件的表头、列顺序完全一致,避免合并后列错位。
内容的提问来源于stack exchange,提问作者pbj
相关产品推荐
相关产品推荐

