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

如何使用Until Activity获取指定日期的GEN2存储数据?

使用Until Activity获取ADLS Gen2指定日期数据的实现方法

前置准备

  • 确保Data Factory已配置好ADLS Gen2的链接服务,可正常访问目标存储。
  • 推荐定义两个参数:TargetDate(指定要获取的日期,格式为yyyy-MM-dd)、MaxRetryTimes(最大轮询次数,防止无限循环);同时定义变量RetryCount,初始值设为0。

步骤1:配置Until Activity的停止条件

Until的核心是判断指定日期的存储路径是否就绪,用Get Metadata Activity实现路径检测:

  1. 在Until内部添加Get Metadata Activity,命名为CheckTargetPathExists。
  2. 配置该活动的数据集:指向ADLS Gen2,路径用动态内容拼接指定日期的格式:
    @concat('AAA/', formatDateTime(pipeline().parameters.TargetDate, 'yyyy'), '/', formatDateTime(pipeline().parameters.TargetDate, 'MM'), '/', formatDateTime(pipeline().parameters.TargetDate, 'dd'))
    
  3. Get Metadata的字段选择Exists,用于判断路径是否存在。
  4. 设置Until的停止条件:
    @activity('CheckTargetPathExists').output.exists || equals(variables('RetryCount'), pipeline().parameters.MaxRetryTimes)
    

步骤2:循环内的操作逻辑

在Until内部按顺序添加以下活动:

  • Increment Variable Activity:每次循环将RetryCount加1,达到最大次数时触发停止。
  • Wait Activity:设置等待时长(比如5分钟),避免频繁调用存储服务,降低资源开销。
  • 数据获取活动:若路径存在,添加Copy Data或其他读取类活动,将指定路径的数据同步到目标位置(如数据库、其他存储),数据集路径同样用上述动态内容拼接。

步骤3:循环结束后的分支处理

在Until之后添加If Condition Activity,区分停止原因:

  • 若@activity('CheckTargetPathExists').output.exists为真:执行后续数据处理逻辑。
  • 若@equals(variables('RetryCount'), pipeline().parameters.MaxRetryTimes)为真:触发告警或标记该日期数据获取失败。

关键动态内容示例

  • 指定日期路径拼接:
    @concat('AAA/', formatDateTime(pipeline().parameters.TargetDate, 'yyyy'), '/', formatDateTime(pipeline().parameters.TargetDate, 'MM'), '/', formatDateTime(pipeline().parameters.TargetDate, 'dd'))
    
  • 重试次数判断:
    @equals(variables('RetryCount'), pipeline().parameters.MaxRetryTimes)
    

注意事项

  • 必须设置最大重试次数,避免无限循环消耗资源。
  • 等待时长根据数据到达的延迟情况调整,平衡等待效率与请求频率。
  • 若需批量获取从起始日期到指定日期的所有数据,可调整逻辑:将TargetDate改为起始日期,每次循环后日期加1,停止条件设为@equals(variables('CurrentDate'), pipeline().parameters.EndDate)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 13:01:39