Фильтры файлов действий копирования фабрики данных Azure версии 2

Я использую фабрику данных 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')

Возможно ли это или мне нужно отдельное занятие?

Было бы странно нуждаться во втором действии, поскольку действие копирования может принимать только один ввод, но если регулярное выражение достаточно простое, тогда несколько файлов обрабатываются как один ввод, а если нет, то несколько файлов обрабатываются как несколько вводов.


person Thomas Pouget    schedule 19.06.2018    source источник


Ответы (2)


"||" не будет работать, так как он будет оцениваться как одна строка. Но я могу предложить два решения для этого.

  1. используя вращающееся окно ежедневный триггер и установите время начала как вчера. Таким образом, это вызовет запуск двух конвейеров.
  2. с помощью для каждого действия + копировать активность. Действие foreach выполняет итерацию по массиву, чтобы передать в действие копирования вчера и сегодня.

Кстати, вы можете просто использовать выражение строковой интерполяции вместо concat. Они одинаковые.

File_@{formatDateTime(utcnow(), 'yyyyMMdd')}.zip
person Fang Liu    schedule 19.06.2018

Я предлагаю вам прочитать об активности получения метаданных. Думаю, это может быть полезно в вашем сценарии.

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

У вас есть свойство itemName, свойство lastModified, проверьте это.

person DraganB    schedule 20.06.2018