我创建了一个(一次运行)DF(V2)管道,将文件(.lta.gz)从SFTP服务器加载到azure blob中以获取历史数据。工作得很漂亮。每天SFTP服务器上都会有几个新文件(无法操作或删除)。所以我想创建一个增量加载管道,每天检查新文件 - 如果是这样--->复制新文件。
有没有人对我有任何提示如何实现这一目标?
感谢您使用Data Factory!
要在SFTP服务器上逐步加载新生成的文件,可以利用GetMetadata活动来检索LastModifiedDate属性:https://docs.microsoft.com/en-us/azure/data-factory/control-flow-get-metadata-activity
基本上,您创建了一个包含以下活动的管道:
使用Data Factory建立数据集成流程很有趣!
自从我去年5月发布了我之前的答案以来,很多人都联系我,要求使用getMetadata-ForEach-getMetadata-If-Copy模式来实现增量文件复制方案。这是一个重要的反馈,增量文件复制是我们想要进一步优化的常见场景。
今天我想发布一个更新的答案 - 我们最近发布了一个新功能,它允许更容易和可扩展的方法来实现相同的目标:
您现在可以在SFTP数据集上设置modifiedDatetimeStart和modifiedDatetimeEnd,以指定时间范围过滤器,以仅提取在该时间段内创建/修改的文件。这使您可以使用单个活动来实现增量文件复制:https://docs.microsoft.com/en-us/azure/data-factory/connector-sftp#dataset-properties
为ADF中的这些基于文件的连接器启用了此功能:AWS S3,Azure Blob存储,FTP,SFTP,ADLS Gen1,ADLS Gen2和本地文件系统。 HDFS的支持很快就会到来。
此外,为了更容易创建增量复制管道,我们现在发布通用管道模式作为解决方案模板。您可以选择其中一个模板,填写链接的服务和数据集信息,然后单击部署 - 就这么简单! https://docs.microsoft.com/en-us/azure/data-factory/solution-templates-introduction
您应该能够在库中找到增量文件复制解决方案:https://docs.microsoft.com/en-us/azure/data-factory/solution-template-copy-new-files-lastmodifieddate
再次感谢您使用ADF和ADF快乐编码数据集成!