Azure 数据工厂 V2 复制活动文件筛选器



我正在使用数据工厂 v2,目前有一个简单的复制活动,可将文件从 FTP 服务器复制到 blob 存储。此服务器上的文件名采用以下形式:

File_{Year}{Month}{Day}.zip

为了下载最新的文件,我将这个过滤器添加到我的输入数据集json文件中:

"fileName": {
"value": "@concat('File_',formatDateTime(utcnow(), 'yyyyMMdd'), '.zip')",
"type": "Expression"
}

我现在希望能够下载昨天的文件,可以使用adddays().

但是,我希望能够在同一复制活动中执行此操作,并且数据工厂 v2 似乎不允许我使用以下类型的正则表达式逻辑:

@concat('File_',formatDateTime(utcnow(), 'yyyyMMdd'), '.zip') || @concat('File_', formatDateTime(adddays(utcnow(), -1), 'yyyyMMdd'), '.zip')

这可能还是我需要单独的活动?

需要第二个活动似乎很奇怪,因为复制活动只能接受单个输入,但如果正则表达式足够简单,则多个文件被视为单个输入,如果不是,则多个文件被视为多个输入。

"||"将不起作用,因为它将被评估为单个字符串。 但我可以为此提供两种解决方案。

  1. 使用翻转窗口每日触发器并将开始时间设置为昨天。因此,它将触发两个管道运行。
  2. 使用 Foreach 活动 + 复制活动。foreach 活动迭代一个数组,以将昨天和今天传递给复制活动。

顺便说一句,你可以只使用字符串插值表达式而不是连接。它们是一样的。

File_@{formatDateTime(utcnow(), 'yyyyMMdd')}.zip

我建议您阅读有关获取元数据活动的信息。我认为这在您的场景中会有所帮助。

https://learn.microsoft.com/en-us/azure/data-factory/control-flow-get-metadata-activity

你有itemName属性,lastModified属性,签出来。

相关内容

  • 没有找到相关文章

最新更新