Скопируйте последние файлы из S3 в Azure Blob (используя Azure Factory V2)

Я все еще новичок в Azure Data Factory и пытаюсь ежедневно перемещать файлы, которые выгружаются из моей папки / корзины S3, в BLOB-объект Azure. Я уже создал наборы данных (для источника и приемника) и связанные службы в фабрике данных.

Но так как мой контейнер S3 получает новый файл каждый день, мне интересно, как перемещать последний файл, который был сброшен в S3 (скажем, в 5 утра по восточному поясному времени) ежедневно. Я просмотрел большинство ответов в Интернете, как это, это, это и это. Но ни один из них не объясняет, как выяснить, какой файл является самым последним в S3 (возможно, на основе последней измененной даты / времени или путем сопоставления шаблона имени файла, который выглядит как "my_report_YYYYMMDD.csv.gz"), и скопировать только этот файл в блоб назначения.

Заранее благодарю за помощь / ответ!

2 ответа

Моя идея, как показано ниже:

1. Во-первых, обязательно настройте выполнение конвейера в триггере расписания. Обратитесь по этой ссылке.

2.Используйте действие Get metadata, которое поддерживает Amazon S3 Connector, чтобы получить файлы в вашем наборе данных S3.

Получить последний измененный и метаданные имени файла и т. Д.

3. Вставьте этот массив метаданных, который содержит время и имя файла lastModified, в веб-операцию или действие функции Azure. В этом API-интерфейсе rest или функциональном методе вы можете выполнить своего рода логическую операцию, чтобы получить последний измененный файл.

4. Получите имя файла из веб-действия или действия функции Azure, а затем скопируйте его в хранилище BLOB-объектов Azure.

Другая идея заключается в использовании Custom-Activity. Вы можете реализовать свои требования с помощью кода.net.

(Примечание: спасибо Джу Гонгу выше за предложение решения)

Я нашел ответ. Это проще, чем я ожидал. Там в dynamic content/expression что мы можем добавить в поле "Фильтровать по последнему измененному" набора данных S3. Пожалуйста, смотрите скриншот ниже, где я показываю, как я выбрал файлы, возраст которых не превышает 5 часов, с помощью динамического выражения. Подробнее об этих выражениях можно прочитать здесь.

Надеюсь, это полезно.

Другие вопросы по тегам