Фабрика данных Azure | инкрементная загрузка данных из SFTP в Blob - PullRequest
0 голосов
/ 11 мая 2018

Я создал (один раз) конвейер DF (V2) для загрузки файлов (.lta.gz) с SFTP-сервера в лазурный BLOB-объект для получения исторических данных. Работал красиво. Каждый день на SFTP-сервере будет появляться несколько новых файлов (которыми нельзя манипулировать или удалять). Поэтому я хочу создать конвейер инкрементальной загрузки, который ежедневно проверяет наличие новых файлов - если да ---> копировать новые файлы.

У кого-нибудь есть советы, как этого добиться?

Ответы [ 2 ]

0 голосов
/ 02 марта 2019

с тех пор, как я опубликовал свой предыдущий ответ в мае прошлого года, многие из вас связались со мной, попросив образец конвейера для достижения сценария инкрементного копирования файла, используя шаблон getMetadata-ForEach-getMetadata-If-Copy.Это стало важным отзывом о том, что инкрементное копирование файлов является распространенным сценарием, который мы хотим дополнительно оптимизировать.

Сегодня я хотел бы опубликовать обновленный ответ - недавно мы выпустили новую функцию, которая позволяет гораздо более простой и масштабируемый подходдля достижения той же цели:

Теперь вы можете установить updatedDatetimeStart иifiedDatetimeEnd в наборе данных SFTP, чтобы указать фильтры временного диапазона для извлечения только тех файлов, которые были созданы / изменены в течение этого периода.Это позволяет получить инкрементную копию файла с помощью одного действия: https://docs.microsoft.com/en-us/azure/data-factory/connector-sftp#dataset-properties

Эта функция включена для этих файловых соединителей в ADF: AWS S3, хранилище BLOB-объектов Azure, FTP, SFTP, ADLS Gen1,ADLS Gen2 и локальная файловая система.Поддержка HDFS появится очень скоро.

Далее, чтобы еще проще было создать конвейер инкрементного копирования, мы теперь выпускаем общие шаблоны конвейеров в качестве шаблонов решений.Вы можете выбрать один из шаблонов, заполнить информацию о связанном сервисе и наборе данных и нажать «развернуть» - это так просто!https://docs.microsoft.com/en-us/azure/data-factory/solution-templates-introduction

Вы сможете найти решение для инкрементного копирования файлов в галерее: https://docs.microsoft.com/en-us/azure/data-factory/solution-template-copy-new-files-lastmodifieddate

Еще раз спасибо за использование ADF и счастливую интеграцию данных кодирования с ADF!

0 голосов
/ 12 мая 2018

Спасибо за использование фабрики данных!

Чтобы постепенно загружать вновь созданные файлы на SFTP-сервер, вы можете использовать действие GetMetadata для извлечения свойства LastModifiedDate: https://docs.microsoft.com/en-us/azure/data-factory/control-flow-get-metadata-activity

По сути, вы авторконвейер, содержащий следующие действия:

  • getMetadata (возвращать список файлов в данной папке)
  • ForEach (перебирать каждый файл)
  • getMetadata (возвращать lastModifiedTime дляданный файл)
  • IfCondition (сравните lastModifiedTime с триггером WindowStartTime)
  • Копировать (скопировать файл из источника в место назначения)

Получите удовольствие от создания потоков интеграции данных с использованием Dataзавод!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...