Azure Data Factory如何配置大小写不敏感的文件名通配符?
解决Azure Data Factory中大小写不敏感的Blob文件匹配问题
方案1:用Get Metadata + Filter活动实现精准匹配
- 给管道添加一个Get Metadata活动,数据源指向目标Blob容器,勾选
Child Items以获取容器内所有文件 - 接着添加Filter活动,输入源选择Get Metadata的输出结果,设置过滤条件为:
这个正则表达式会精准匹配所有大小写组合的@matches(item().name, '^[Ll][Oo][Ww][Ff][Ii][Xx]-.*\.csv$')LowFix-开头、.csv结尾的文件,不管是LOWFIX、lowfix还是混合大小写的格式都能命中 - 最后用For Each活动遍历Filter筛选后的文件列表,执行后续的导入逻辑即可
方案2:事件触发场景下的调整
- 如果是依赖Blob存储事件触发管道,默认的文件名前缀筛选是区分大小写的,建议不要使用该筛选:
- 要么触发时不设置文件名筛选,在管道开头添加上述Filter活动进行过滤
- 要么直接在Azure Event Grid的高级筛选中,给
subject字段添加正则匹配规则:
这样只有符合条件的文件才会触发管道运行^/blobServices/default/containers/[你的容器名]/blobs/[Ll][Oo][Ww][Ff][Ii][Xx]-.*\.csv$
方案3:数据流中直接用正则匹配文件名
- 如果是用数据流执行导入操作,在源数据集的设置界面,打开正则表达式文件名的开关
- 输入正则表达式:
[Ll][Oo][Ww][Ff][Ii][Xx]-.*\.csv,数据流会自动匹配所有大小写变体的目标文件
小提示
- 正则里的
^和$必须加上,避免匹配到比如abcLowFix-test.csv这类不符合要求的文件 - 如果
LowFix部分有可能出现缩写或其他变体,可以灵活调整正则规则,比如允许最后一个X可选的话,可修改为^[Ll][Oo][Ww][Ff][Ii][Xx]?-.*\.csv$
内容的提问来源于stack exchange,提问作者Marcus GH
相关产品推荐
相关产品推荐

