我想将管道的输出写入FTP文件夹。ADF似乎支持内部部署文件,但不支持FTP文件夹。
如何将文本格式的输出写入FTP文件夹?
遗憾的是,FTP服务器目前还不是ADF支持的数据存储。因此,没有OOTB方法可以与FTP服务器交互进行读取或写入。
但是,您可以使用自定义活动使其成为可能,但这需要一些自定义开发才能实现。微软的一位云解决方案架构师同事写了一篇博客文章,讲述了他是如何为一位客户做到这一点的。请查看以下内容:
https://blogs.msdn.microsoft.com/cloud_solution_architect/2016/07/02/creating-ftp-data-movement-activity-for-azure-data-factory-pipeline/
我希望这能有所帮助。
经过思考,您可以通过将输出写入Azure Blob存储帐户,然后使用
1) 手动:从Blob存储帐户下载文件并将其推送到"FTP"站点,或2) 自动:使用Azure CLI在本地提取文件,然后使用批处理或shell脚本将其推送到"FTP"站点(视情况而定)
作为自定义活动的轻量级方法(当然是繁重工作的更好选择)。
您可能希望考虑使用azure函数写入ftp(请注意,使用消费计划时会有一段时间,而不是在其他计划中,因此这将取决于文件的大小)。
https://learn.microsoft.com/en-us/azure/azure-functions/functions-create-storage-blob-triggered-function
您可以指示数据工厂写入中间blob存储。并使用azure函数中的blob存储触发器,在它们出现在blob存储中时立即上传。
或者,写入blob存储。然后在逻辑应用程序中使用计时器从blob存储上传到ftp。Logic应用程序在友好的外观背后隐藏了巨大的力量。
您可以编写一个Logic应用程序,该应用程序将从Azure存储中提取您的文件并将其发送到FTP站点。然后使用数据工厂Web活动调用逻辑应用程序。如果ftp失败,请确保在Logic应用程序中进行一些错误处理以返回400。