我创建了一个 ADF 管道,用于将大约 18 个文件从 FTP 位置复制到 Azure Blob 容器中。最初,我使用“获取元数据事件”从 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 链接服务的连接是否正常工作时,它表示连接成功。 FTP 链接服务启用了 SSL,并配置为从 Azure Key Vault 获取密码。
当我运行管道时,请参阅下面的输出 -
对于这里出了什么问题有什么想法吗?一次复制的文件数量有限制吗?
提前谢谢您。
最佳答案
正如 @Joel Cochran 所说,该问题可能是并发限制问题。
当我们选择Sequential
时,复制事件将是单线程的。取消勾选,Copy事件将是多线程的,效率大大提高。
所以我们的解决方案是:
- 取消选中
顺序
- 增加内部事件并行操作的最大数量。
关于azure - ADF 复制事件 FTP 源奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65394967/