Azure 数据工厂 | 从 SFTP 到 Blob 的增量数据加载



我创建了一个(一次运行(DF (V2( 管道,用于将文件 (.lta.gz( 从 SFTP 服务器加载到 Azure blob 中以获取历史数据。 工作得很好。 SFTP服务器上每天都会有几个新文件(无法操作或删除(。所以我想创建一个增量加载管道,每天检查新文件 - 如果是这样--->复制新文件。

有没有人对我如何实现这一目标有任何提示?

感谢您使用数据工厂!

若要在 SFTP 服务器上以增量方式加载新生成的文件,可以利用 GetMetadata 活动来检索 LastModifiedDate 属性: https://learn.microsoft.com/en-us/azure/data-factory/control-flow-get-metadata-activity

实质上,您创作了一个包含以下活动的管道:

  • getMetadata(返回给定文件夹下的文件列表(
  • ForEach (循环访问每个文件(
  • getMetadata (返回给定文件的 lastModifiedTime(
  • IfCondition (将 lastModifiedTime 与触发器 WindowStartTime( 进行比较(
  • 复制(将文件从源复制到目标(

享受使用数据工厂构建数据集成流的乐趣!

自从我在去年五月发布了我之前的答案以来,你们中的许多人联系了我,要求提供管道示例,以使用 getMetadata-ForEach-getMetadata-If-Copy 模式实现增量文件复制方案。 这是重要的反馈,即增量文件复制是我们希望进一步优化的常见方案。

今天我想发布一个更新的答案 - 我们最近发布了一项新功能,该功能允许一种更简单和可扩展的方法来实现相同的目标:

现在可以在 SFTP 数据集上设置 modifiedDatetimeStart 和 modifiedDatetimeEnd,以指定时间范围筛选器,以仅提取在该时间段内创建/修改的文件。 这使您能够使用单个活动实现增量文件复制: https://learn.microsoft.com/en-us/azure/data-factory/connector-sftp#dataset-properties

为 ADF 中这些基于文件的连接器启用此功能:AWS S3、Azure Blob Storage、FTP、SFTP、ADLS Gen1、ADLS Gen2 和本地文件系统。 对HDFS的支持即将推出。

此外,为了更轻松地创作增量复制管道,我们现在将常见管道模式作为解决方案模板发布。 可以选择其中一个模板,填写链接服务和数据集信息,然后单击"部署",就这么简单! https://learn.microsoft.com/en-us/azure/data-factory/solution-templates-introduction

您应该能够在库中找到增量文件复制解决方案: https://learn.microsoft.com/en-us/azure/data-factory/solution-template-copy-new-files-lastmodifieddate

再次感谢您使用 ADF 并与 ADF 集成编码数据!

相关内容

  • 没有找到相关文章

最新更新