Azure data factory Azure数据工厂:设置使用复制活动复制文件数量的限制

Azure data factory Azure数据工厂:设置使用复制活动复制文件数量的限制,azure-data-factory,azure-data-lake,azure-data-factory-2,Azure Data Factory,Azure Data Lake,Azure Data Factory 2,我在管道中使用了一个复制活动,用于从Azure data Lake gen 2复制文件。源位置可能有1000个文件,需要复制这些文件,但我们需要为需要复制的文件数量设置限制。ADF中是否有任何选项可用于实现相同的自定义活动限制 我在Data lake中有2000个可用文件,但在运行管道时,我应该能够传递一个参数,以便只复制500个文件 问候,, Sandeep我认为可以使用带有for-each循环的查找活动和复制活动来实现这一点。您还必须使用一个计数器变量(这会使进程变慢,因为您必须一次复制i文

我在管道中使用了一个复制活动,用于从Azure data Lake gen 2复制文件。源位置可能有1000个文件,需要复制这些文件,但我们需要为需要复制的文件数量设置限制。ADF中是否有任何选项可用于实现相同的自定义活动限制

我在Data lake中有2000个可用文件,但在运行管道时,我应该能够传递一个参数,以便只复制500个文件

问候,,
Sandeep

我认为可以使用带有for-each循环的查找活动和复制活动来实现这一点。您还必须使用一个计数器变量(这会使进程变慢,因为您必须一次复制i文件)。loopkup活动此时的限制为5000,因此您必须记住这一点

我将使用元数据活动获取数据池中所有项目的列表:

之后,您可以使用“ForEach”步骤在文件列表中循环并复制它们。要设置限制,可以使用创建两个变量/参数:限制和文件。在每个步骤的开头,检查您复制的文件是否小于限制,执行复制操作并向复制的文件添加1


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

谢谢@Andrii,我用了类似的方法。但是我们有一个条件,即被复制的文件应该根据文件名的数字部分按顺序排列。因此,我们使用一个暂存表来加载所有文件名,然后根据参数中设置的批处理大小将文件名移动到主表中。主表中可用的任何文件名都将在查找运算符的帮助下按排序顺序复制到目标位置。谢谢Himanshu,几乎使用了类似的方法来解决此问题。