Azure Data Factory выкачивает без создания папки - PullRequest
2 голосов
/ 24 мая 2019

У меня есть задание Data Factory v2, которое копирует файлы с SFTP-сервера на Azure Data Lake Gen2.

Существует смесь файлов .csv и .zip (каждый из которых содержит только один файл CSV).

У меня есть один набор данных для копирования файлов csv и другой для копирования файлов zip (с типом Compressoin, установленным на ZipDeflate). Проблема в том, что ZipDeflate создает новую папку, содержащую файл csv, и мне нужно это соблюдать иерархию папок без создания каких-либо папок.

Возможно ли это в фабрике данных Azure?

1 Ответ

0 голосов
/ 05 июня 2019

Хороший вопрос, я столкнулся с подобной проблемой *, и она не очень хорошо документирована.

Если я правильно помню, Data Factory предполагает, что ZipDeflate может содержать более одного файла, и, похоже, для создания папки нетнезависимо от того, что.

Если у вас есть файлы Gzip с другой стороны, которые имеют только один файл, то он создаст только это.

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

Насколько я понимаю, стандарт Zip - это формат archive , в котором используется алгоритм Deflate.Будучи форматом архива, он, естественно, может содержать несколько файлов.

Принимая во внимание, что gzip (например) - это просто алгоритм сжатия, он не поддерживает несколько файлов (если tar не заархивирован первым), поэтому он будет распакован в файл без папки.


У вас мог бы быть дополнительный шаг фабрики данных, чтобы взять иерархию и скопировать ее в плоскую папку, возможно, но это приводит к случайным именам файлов (которые вы можете или не можете быть довольны).Для нас это не сработало, так как нашему следующему шагу в конвейере требовались предсказуемые имена файлов.

nb Фабрика данных не перемещает файлы, она копирует их, поэтому, если они очень большие, это может быть проблемой.Однако вы можете инициировать операцию перемещения метаданных через API хранилища озера данных или Powershell и т. Д.

* Моя ситуация была несколько сумасшедшей: я получал файлы с именем .gz из исходной системы, но на самом деле это были zip-файлы.замаскированный!В конце концов, лучшим вариантом было попросить нашу исходную систему перейти на настоящие файлы gzip.

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