You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ADF管道中筛选并排序FTP文件后导入Azure Blob Storage

Azure Data Factory 筛选并排序FTP文件后导入Blob Storage的实现方法

针对你提出的两个疑问:完全可以筛选Get Metadata获取的文件名,也能自由排序后存入变量,结合你的示例场景,具体实现步骤如下:

一、筛选符合条件的文件

  • 先确保Get Metadata活动已经勾选Child Items选项,能拿到FTP目标目录下的所有子项(文件夹+文件)。
  • 加一个Filter活动,把Get Metadata的输出作为输入:
    • 输入值填 @activity('Get Metadata').output.childItems
    • 筛选条件要同时满足三个要求,直接用这个组合表达式:
      @and(and(equals(item().type, 'File'), contains(item().name, 'JP')), equals(substring(item().name, indexOf(item().name, '_JP_')+4, 8), formatDateTime(utcNow(), 'yyyyMMdd')))
      
      拆解下这个表达式:
      • equals(item().type, 'File'):只保留文件类型的项
      • contains(item().name, 'JP'):文件名必须包含"JP"
      • substring(...):从文件名里_JP_后面提取前8位日期,和当日日期(格式yyyyMMdd)对比,确保是当日文件

二、对筛选后的文件排序并存入变量

  • 加一个Sort活动,把Filter活动的输出作为输入:
    • 输入值填 @activity('Filter').output.Value
    • 排序依据用表达式提取文件名里的完整14位时间戳:
      @substring(item().name, indexOf(item().name, '_JP_')+4, 14)
      
    • 排序方向选升序,这样就能按时间戳从旧到新排列
  • 用Set Variable活动把排序后的结果存入你的数组变量:
    • 值填 @activity('Sort').output.Value

三、循环复制文件

  • 把For Each活动的输入设置为这个排序后的数组变量
  • 循环内部用Copy活动,源路径直接拼接FTP目录+当前项的文件名(比如@concat('/你的FTP目标目录/', item().name)),目标指向Azure Blob Storage的对应路径即可

内容的提问来源于stack exchange,提问作者user19504539

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 09:04:49