2

我创建了一个 ADF 管道,将大约 18 个文件从 FTP 位置复制到 Azure Blob 容器。最初,我使用 Get Metadata Activity 从 FTP 位置获取所有文件。然后,我有 ForEach 活动来遍历所有文件。在 ForEach 活动中,我有复制数据活动,它从 FTP 位置复制到 Blob 位置。

在运行管道时,一些文件被复制了,但是其中一些文件失败了,说下面的错误消息 -

"ErrorCode=UserErrorFileNotFound,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=远程服务器返回错误:(550) 文件不可用(例如,找不到文件,无法访问)。,Source=Microsoft.DataTransfer。 ClientLibrary,''Type=System.Net.WebException,Message=远程服务器返回错误:(550) 文件不可用(例如,找不到文件,无法访问)。,Source=System,'"

我不确定这里出了什么问题,因为其他文件已成功复制,但是很少有。我不得不多次尝试,仍然不能保证所有文件都会被复制。

当我尝试查看与 FTP Linked 服务的连接是否正常时,它说它连接成功。FTP 链接服务已启用 SSL 并配置为从 Azure Key Vault 获取密码。

当我运行管道时,请参考以下输出 -

在此处输入图像描述

关于这里出了什么问题的任何想法?一次复制的文件数量是否有限制?

先感谢您。

4

1 回答 1

2

正如@Joel Cochran 所说,这个问题可能是并发限制问题。
当我们选择Sequential时,复制活动将是单线程的。取消勾选,Copy活动将是多线程的,效率大大提高。

所以我们的解决方案是:

  1. 取消选中Sequential
  2. 增加内部活动的最大并行操作数。

在此处输入图像描述

于 2020-12-24T09:50:29.643 回答