Azure数据工厂-从FTP服务器复制多个父文件夹中的特定文件

时间:2019-05-01 17:24:22

标签: azure ftp azure-data-factory azure-data-lake

我正在尝试将.ZIP文件从FTP服务器复制到Azure DataLake。 我需要从特定的父文件夹复制特定的文件(在FTP中我总共有6个父文件夹),并且此管道需要安排。 那么我应该如何提供参数,使Pipeline应该仅从不同文件夹中选择特定文件?

我已使用元数据活动并尝试创建管道,但不确定如何提供管道以仅选择特定文件!

2 个答案:

答案 0 :(得分:0)

Azure Data Factory支持在复制期间压缩/解压缩数据。在输入数据集中指定压缩属性时,复制活动会从源读取压缩数据并解压缩;当您在输出数据集中指定属性时,复制活动将进行压缩,然后将数据写入接收器。

例如:

从FTP服务器读取.zip文件,将其解压缩以将其放入其中,然后将这些文件放入Azure Data Lake Store中。您可以将压缩类型属性定义为ZipDeflate的输入FTP数据集。

有关更多详细信息,请参考:Compression support

这是有关Copy data from FTP server by using Azure Data Factory的教程。

其他格式数据集 要以ORC / Avro / JSON /二进制格式从FTP复制数据,此链接支持以下属性:Other format dataset

enter image description here

提示:

  1. 要复制文件夹下的所有文件,请仅指定 folderPath
  2. 要复制具有给定名称的单个文件,请在文件夹部分中指定 folderPath ,并在文件名中指定 fileName
  3. 要复制文件夹下的一部分文件,请在文件夹部分指定 folderPath ,并在通配符过滤器下指定 fileName

希望这会有所帮助。

答案 1 :(得分:0)

您将需要使用过滤器活动仅过滤所需的文件夹/文件。我认为您需要2个循环:

循环1:获取文件夹的元数据->过滤所需的文件夹-> foreach具有循环2的管道 循环2:获取文件文件的元数据->过滤所需文件->复制所需文件