更新时间:2025-11-20 GMT+08:00
分享

配置FTP/SFTP增量读取最佳实践

概述

FTP/SFTP增量抽取是指通过设置特定的时间范围(如文件修改时间、创建时间或文件名中的时间标识),从FTP/SFTP服务器中仅抽取指定时间段内新增或变更的文件,以实现数据的周期性同步。这种策略特别适用于需要定期将FTP/SFTP服务器中的数据(如日志文件、业务报表、第三方系统导出数据等)同步到其他存储系统(如OBS、HDFS、数据湖等)的场景。通过合理配置文件筛选条件与调度策略,可以高效完成增量同步任务,避免全量重复拉取,提升数据处理效率与资源利用率。

应用场景

当FTP/SFTP服务器上的文件按以下规则组织时,可搭配调度变量与周期调度实现高效增量抽取:

1.文件名包含时间标识:如order_20251118.csv(文件名中嵌入日期)。

2.文件按时间目录分类存储:如/data/2025/11/18/(按年/月/日目录存放)、/logs/hourly/14/(按小时目录存放)。

操作步骤

本章节以按天周期调度的方式增量抽取FTP/SFTP为例,该示例数据文件按年/月/日目录存放。关于调度变量DateUtil的作业参数配置用法可见:DateUtil内嵌对象

  1. 配置作业参数变量。

    即配置日期变量:dt:#{DateUtil.format(Job.planTime,"yyyy/MM/dd")},表示任务调度时间当天。

    图1 配置作业参数

  2. 配置读取FTP/SFTP任务。

    将FTP/SFTP任务的源目录配置通过变量的方式替换。

    图2 配置源目录

  3. 配置调度策略。

    将任务配置调度周期为【天】,任务将按天调度并抽取一天内的FTP/SFTP消息。

    图3 配置调度周期

总结

通过合理配置FTP/SFTP的文件路径变量(基于时间标识或目录结构)及周期调度策略,可以高效完成增量数据同步任务。该方法特别适用于文件按时间规则组织的场景,能够显著减少重复传输、降低网络与存储开销,同时保证数据的实时性与一致性。

相关文档