Azure Data Factory中Get MetaData如何获取文件所属父文件夹路径
ADF Get MetaData 获取层级路径解决方案
核心原因
你遇到的itemName返回*的问题,是因为通配符规则配置在数据集层级导致的,调整配置规则即可拿到完整路径:
可行方案
方案1:直接获取完整相对路径
- 先修改源数据集:删除数据集连接配置里写死的通配符,数据集只配置到根目录
project/即可 - 调整Get MetaData活动配置:在活动的「源设置」板块配置通配符规则,「通配符文件名」填写
*/*,同时在Get MetaData的返回字段列表中勾选childItems - 此时Get MetaData返回的
childItems数组中,每个元素的name字段就是你需要的location/file.tdms格式的相对路径,可直接引用
方案2:提取单独的location参数传递到ForEach
- 按方案1的配置拿到
childItems数组后,将该数组作为ForEach活动的迭代输入 - 在ForEach活动内部,用表达式
@split(item().name, '/')[0]即可提取到location层级的文件夹名,按需传递到后续活动即可
补充说明
如果你需要遍历多层级嵌套文件夹,可以开启Get MetaData的递归选项,拿到全层级的文件路径后,用split()表达式按需拆分出各级文件夹名称即可。
注意:所有通配符规则都放在活动层级配置,不要写死在数据集连接中,就能避免itemName返回通配符本身的问题。
内容的提问来源于stack exchange,提问作者YusufD
相关产品推荐
相关产品推荐

