You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ADLS文件夹名称导出CSV失败:管道运行后无数据写入问题

排查ADLS文件夹名导出CSV无数据问题

1. 先查Get Metadata环节

  • 得确认Get Metadata的字段列表勾选了childItems,没勾的话根本拿不到文件夹列表。
  • 检查数据集是不是指向正确的ADLS容器,还有权限够不够——比如用的服务主体得有容器的读取权限,不然读不到内容。
  • 调试完去看Get Metadata的输出日志,看看childItems里是不是真有12个文件夹条目。要是这里是空的,后面全白搭。

2. 检查Foreach和Append Variable

  • 确认Foreach的Items表达式是@activity('Get Metadata1').output.childItems,别写错活动名称(比如少打空格写成GetMetadata1)。
  • 变量Filename得是数组类型,Append Variable里的赋值表达式要写@item().name,别写成item().filename这种错字段。
  • 调试完去看变量Filename的最终值,在管道日志的“变量”标签里能看到,确认数组里是不是已经装了12个文件夹名。要是数组为空,说明Foreach或者Append环节出问题了。

3. Copy Activity是核心,重点排查

这步最容易踩坑:

源数据集(虚拟CSV)

  • 源数据集得是DelimitedText类型,而且要设成虚拟数据集(不用指定具体文件,靠表达式生成源数据)。
  • Copy Activity的源设置里选“查询”模式,用表达式把数组转成CSV格式的文本,比如:
    @join(variables('Filename'), '\n')
    
    这个表达式会把数组里的每个文件夹名用换行分隔,变成CSV的每行内容。要是没做这个转换,源数据就是空的,目标自然没东西。

目标数据集

  • 确认目标数据集指向ADLS的正确路径,服务主体得有写入权限。
  • 检查文件名有没有写错,别因为路径或者文件名不对,导致文件生成了但你找不到。

映射设置

  • 因为源是单行单列的文本,要么开自动映射,要么手动确认源列和目标列对应上。映射错了的话,数据也写不进去。

4. 最后看日志和权限细节

  • 去看Copy Activity的运行日志,看看“数据读取”“数据写入”的统计数。读取数是0的话,说明源数据没生成;写入数是0的话,大概率是权限或者网络问题。
  • 确认ADLS的防火墙/网络规则允许Data Factory访问,别因为网络拦截导致数据写不进去。

内容的提问来源于stack exchange,提问作者Anubhav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 13:40:37