Azure Фабрика данных: установите ограничение на количество копий файлов, используя операцию копирования. - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть операция копирования, используемая в моем конвейере для копирования файлов из Azure data Lake gen 2. Исходное местоположение может иметь тысячи файлов, и файлы должны быть скопированы, но нам нужно установить ограничение на количество файлы, необходимые для копирования. Есть ли какая-либо опция, доступная в ADF для достижения того же запрета пользовательского действия?

Например: у меня есть 2000 файлов, доступных в озере данных, но во время работы конвейера я должен передать параметр для копирования только 500 файлов .

С уважением, Сандип

Ответы [ 2 ]

1 голос
/ 01 мая 2020

Я думаю, что вы можете использовать операцию поиска для каждого l oop и операцию копирования для достижения этой цели. Вам также придется использовать переменную-счетчик (это замедляет процесс, так как вам придется копировать i-файл одновременно). В настоящий момент у loopkup acitivty есть ограничение в 5000, так что вам нужно помнить об этом.

0 голосов
/ 07 мая 2020

Я бы использовал активность метаданных, чтобы получить список всех элементов в вашем озере данных: https://docs.microsoft.com/en-us/azure/data-factory/control-flow-get-metadata-activity

После этого вы можете использовать шаг «ForEach» для l oop через список файлов и скопировать их. Чтобы установить предел, вы можете использовать две переменные / параметры: limit и files_copied . В начале каждого шага убедитесь, что ваш files_copied меньше limit , выполните операцию копирования и добавьте 1 к files_copied .

Кроме того, вы можете создать базу данных с именами всех файлов после первого шага, а затем использовать поиск и для каждого шага, как упомянуто @ HimanshuSinha-msft. На шаге «Поиск» можно использовать запрос SQL OFFSET + FETCH в сочетании с параметром limit для обработки только определенного количества файлов. Это также может разрешить ограничение поиска в 5 КБ.

...