Azure Data Factory增量加载:GetMetadata与Filter活动路径异常排查
Azure Data Factory 增量加载:修复Filter活动路径不匹配问题
核心问题点
你当前的配置踩了三个关键坑:
- GetMetadata未开启递归扫描,无法遍历到日层级文件夹,导致
childItems里没有目标路径的条目 - Filter用
item().name做匹配,但item().name仅返回最后一级文件夹名(比如01),而非你需要的完整路径2022/08/01 - 动态路径拼接可能缺失层级分隔符,导致路径格式不符合要求
修正操作步骤
1. 调整GetMetadata的扫描规则
- 将GetMetadata的数据集路径设置为源容器的根目录(或你要扫描的最上层目录)
- 必须勾选递归扫描(活动设置面板中的「递归」选项),确保能获取所有层级文件夹的完整路径信息
2. 重写Filter的筛选表达式
要匹配完整的文件夹路径,改用item().path字段,表达式优化为:
@and(equals(item().type, 'Folder'), equals(item().path, concat(variables('v_BlobSourceDirectory'), if(endsWith(variables('v_BlobSourceDirectory'), '/'), '', '/'), variables('v_Set_date'))))
该表达式会自动处理
v_BlobSourceDirectory末尾是否带/的情况,避免出现//这类无效分隔符
3. 校验变量格式
确认v_Set_date的格式为yyyy/MM/dd(比如2022/08/01),如果变量是yyyy-MM-dd这类日期格式,先转换为带斜杠的路径格式:
@formatDateTime(variables('v_Set_date'), 'yyyy/MM/dd')
4. 复制活动调用Filter的输出结果
复制活动的源路径直接取Filter输出的第一个匹配项:
@activity('Filter Target Folder').output.value[0].path
内容的提问来源于stack exchange,提问作者WildJester
相关产品推荐
相关产品推荐

