Azure数据工厂:设置限制以使用“复制”活动复制文件数

时间:2020-04-30 09:50:55

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

我的管道中有一个复制活动,用于从第2代Azure数据湖中复制文件。源位置可能有1000个文件,并且需要复制文件,但是我们需要设置所需文件数的限制被复制。 ADF中是否有任何选项可以实现相同的限制自定义活动?

例如:我在Data Lake中有2000个文件,但是在运行管道时,我应该能够传递一个参数以仅复制500个文件。

关于, 桑迪普

2 个答案:

答案 0 :(得分:1)

我认为您可以在每个循环中使用lookup活动,并使用copy活动来实现此目的。您还必须使用一个计数器变量(这会使过程变慢,因为您必须一次复制i文件)。 Loopkup活动的当前限制为5000,因此您必须牢记这一点。

答案 1 :(得分:0)

我将使用元数据活动来获取您的数据湖中所有项目的列表:https://docs.microsoft.com/en-us/azure/data-factory/control-flow-get-metadata-activity

在那之后,您可以使用“ ForEach”步骤来循环浏览文件列表并复制它们。为了设置限制,可以使用创建两个变量/参数: limit files_copied 。在每个步骤的开始,检查您的 files_copied 是否小于 limit ,执行复制操作,然后将1添加到 files_copied

或者,您可以在第一步之后创建一个包含所有文件名的数据库,然后对每个步骤使用lookup,就像提到的@ HimanshuSinha-msft一样。在“查找”步骤中,您可以将SQL OFFSET + FETCH查询与 limit 参数结合使用,以仅处理一定数量的文件。这也可以解决查找活动的5k限制。