ADF将SQL DB数据导出到Blob时如何设置Zip包内文件名称
ADF导出SQL数据到Blob并自定义Zip包内CSV文件名配置方案
你遇到的默认
data_前缀问题,是因为ADF在启用Zip压缩时,如果没有显式指定Sink端的输出CSV文件名,系统就会自动生成带默认前缀的内部文件。按照以下步骤配置即可实现要求的命名规则:
前置准备
先在管道中创建一个字符串类型的变量统一文件名,用来生成固定格式的文件名前缀,动态表达式如下:
@concat('cust_', formatDateTime(utcnow(), 'yyyyMMdd'))
该表达式输出格式为cust_20240520,后续Zip包和内部CSV均调用该变量,保证两者命名前缀完全一致。
操作步骤
- 配置Sink端Blob存储数据集
数据集类型选择分隔符文本(CSV),连接配置仅指定到存储容器/目标文件夹层级,不要在数据集层面填写固定文件名,留空即可。 - 配置复制活动Sink参数
- 进入复制活动的「接收器」配置页,「复制行为」选择
无,找到「文件名」配置项,填入动态表达式:@concat(variables('统一文件名'), '.csv') - 下拉找到「压缩」配置组,压缩类型选择
ZipDeflate,压缩级别按实际需求选择,将压缩配置下的「文件名」项填入表达式:@concat(variables('统一文件名'), '.zip')
- 进入复制活动的「接收器」配置页,「复制行为」选择
- 大数据量场景适配
如果你的SQL数据源查询返回数据量较大,ADF默认会开启并行分片导出,此时会生成多个分片文件导致命名规则失效,需要额外做以下任一配置:- 将复制活动的「并行度」设置为1
- 在Sink配置的「复制行为」中选择
合并文件
配置完成后触发管道运行,生成的Zip压缩包内部的CSV文件名就会和Zip包本身的文件名(仅后缀不同)完全匹配,符合你的命名要求。
内容的提问来源于stack exchange,提问作者SUCHENDRA REDDY
相关产品推荐
相关产品推荐

