我有此要求,在Azure数据工厂管道中有一个筛选器活动,需要检查文件名是否与特定模式匹配。
例如:>该文件应为csv文件,名称应以'D'开头。 >文件名中必须包含特定字词。
这些值将来自配置文件。 我希望实现是这样的: 我的配置文件将具有一个名为“ filePatternt”的属性,它将是一个正则表达式。 在过滤器活动中,我将提取此属性,并执行类似 regex.match(来自文件模式属性@filename的@myregular表达式)。
但是我找不到可用于上述内容的任何相关文章或正则表达式功能。
如果您有任何线索,解决方案或链接,请告诉我。
关于, Subrat
答案 0 :(得分:2)
当我们将数据从blob复制到其他数据时,数据工厂支持使用一些表达式来过滤通配符操作中的blob,例如:
*
:如果要复制容器或文件夹中的所有blob,请另外将wildcardFileName指定为*
。*.csv
:从容器或文件夹中选择所有csv文件。Start*
:从名称开头的容器或文件夹中复制所有Blob
使用“开始”。参考:
通常,Data Factory不会提及正则表达式,我们会认为它不受支持。
出于您的目的,“该文件应为csv文件,并且名称应以'D'开头。>文件名必须包含特定字词。”,您可以在{{1 }}帮助您实现这一目标:
Add dynamic content
例如,我只是使用Get Metadata和If Condition创建一个示例管道。使用波纹管条件表达式来过滤名称以'D'开头并包含特定单词的csv文件:
我更喜欢使用If条件,该表达式与Filter条件相同:
startsWith()
contains()
endsWith()
and()
如果条件为true(名称以'D'开头且包含特定单词的csv文件),则可以添加大小写。