我正在使用Data Factory v2,目前我有一个简单的复制活动,该活动将文件从FTP服务器复制到Blob存储。该服务器上的文件名具有以下格式:
File_{Year}{Month}{Day}.zip
为了下载最新文件,我将此过滤器添加到我的输入数据集json文件中:
"fileName": {
"value": "@concat('File_',formatDateTime(utcnow(), 'yyyyMMdd'), '.zip')",
"type": "Expression"
}
我现在希望能够使用adddays()
下载昨天的文件。
但是我希望能够在相同的复制活动中执行此操作,并且看来Data Factory v2不允许我使用以下类型的正则表达式逻辑:
@concat('File_',formatDateTime(utcnow(), 'yyyyMMdd'), '.zip') || @concat('File_', formatDateTime(adddays(utcnow(), -1), 'yyyyMMdd'), '.zip')
这是否可行,或者我需要进行单独的活动吗?
需要第二个活动似乎很奇怪,因为复制活动只能接受一个输入,但是如果正则表达式足够简单,则将多个文件视为一个输入,如果不是,则将多个文件视为多个输入
答案 0 :(得分:1)
“ ||”将不起作用,因为它将作为单个字符串求值。 但是我可以为此提供两个解决方案。
顺便说一句,您可以只使用字符串插值表达式代替concat。他们是一样的。
File_@{formatDateTime(utcnow(), 'yyyyMMdd')}.zip
答案 1 :(得分:0)
我建议您阅读有关获取元数据活动的信息。我认为这对您的情况很有帮助。
https://docs.microsoft.com/en-us/azure/data-factory/control-flow-get-metadata-activity
您拥有itemName属性,lastModified属性,请签出。