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

如何在Azure Data Factory中按文件名国家代码统计并校验文件数量

Azure Data Factory 国家维度文件数量校验实现方案

前置说明

你需要校验的文件名格式为Abc_{类型}_{国家代码}_{日期}.csv,要求每个国家代码对应3个不同类型的文件,以下是完整实现逻辑:


实现步骤

1. 拉取目标目录下所有文件名

  • 新增Get Metadata活动,连接到存放csv文件的Blob存储对应容器/目录
  • 活动配置的字段列表选择Child items,运行后会输出当前目录下所有文件的名称数组

2. 提取国家代码并按国家统计文件数

这里提供两种实现方式,可根据你的ADF使用习惯选择:

方式1:Mapping Data Flow实现(推荐,逻辑易维护)

  • 新建Mapping Data Flow,源输入选择Get Metadata活动输出的Child items数组
  • 新增派生列活动,用表达式split(name, '_')[2]提取国家代码,命名新列为country_code
  • 新增聚合活动,分组字段设置为country_code,新增聚合字段file_count,表达式为count(name),统计每个国家对应的文件数量
  • 聚合结果可输出到ADF变量,或临时存储为JSON/CSV供后续校验使用

方式2:变量+ForEach循环实现(无需数据流,适合轻量场景)

  • 预先初始化两个变量:
    • 数组类型变量country_list,用于存储所有出现过的国家代码
    • 数组类型变量count_result,用于存储每个国家对应的文件计数
  • 新增For Each活动,遍历Get Metadata输出的Child items数组
    • 循环内先通过表达式@split(item().name, '_')[2]提取当前文件的国家代码
    • 判断当前国家代码是否已存在于country_list中:不存在则追加到country_list并初始化计数为1,存在则将对应国家的计数+1

3. 执行校验逻辑

  • 遍历统计得到的国家维度计数结果,判断每个国家的file_count是否等于3
  • 异常分支:如果存在国家计数不等于3(比如示例中的ARG计数为1),可按需触发告警、输出异常日志、中断后续流程
  • 正常分支:所有国家计数都等于3时,继续执行后续的数据处理流程

注意:如果后续文件名命名规则有调整,需要对应修改国家代码提取的表达式,确保提取结果准确。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 17:15:07