配置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内嵌对象。
- 配置作业参数变量。
即配置日期变量:dt:#{DateUtil.format(Job.planTime,"yyyy/MM/dd")},表示任务调度时间当天。
图1 配置作业参数
- 配置读取FTP/SFTP任务。
将FTP/SFTP任务的源目录配置通过变量的方式替换。
图2 配置源目录
- 配置调度策略。
将任务配置调度周期为【天】,任务将按天调度并抽取一天内的FTP/SFTP消息。
图3 配置调度周期
总结
通过合理配置FTP/SFTP的文件路径变量(基于时间标识或目录结构)及周期调度策略,可以高效完成增量数据同步任务。该方法特别适用于文件按时间规则组织的场景,能够显著减少重复传输、降低网络与存储开销,同时保证数据的实时性与一致性。