如何用Data Flow从ADLS Gen2提取文件夹所有文件并统计各文件记录数
解决For Each活动中Data Flow无法提取多文件及统计单文件记录数的问题
1. 配置Source Transformation(加载多文件并捕获文件名)
- 选择目标数据源(如Blob存储、ADLS),在文件路径中使用通配符(例如
*.csv)匹配所有待处理文件 - 在Source设置里开启「捕获文件名」,将捕获的字段命名为
filename,这样每条数据都会携带所属文件的名称 - 确认「文件加载模式」设为全部读取,避免仅加载单个文件
2. 用Aggregate Transformation统计单文件记录数
- 添加Aggregate转换,连接到Source的输出节点
- 在分组键(Group by)中选择
filename字段,按文件名分组 - 新增聚合列(命名为
count),使用聚合函数count(1)统计每个分组(即单个文件)的记录数,这样就能得到你需要的filename与count对应结果
3. (可选)与控制文件验证记录数
如果需要对比实际记录数和预期值,按以下步骤配置:
Join Transformation
- 添加第二个Source,加载包含预期记录数的控制文件(结构示例:
filename, expected_count) - 添加Join转换,将Aggregate的输出与控制文件Source的输出连接,匹配条件设为两边的
filename字段相等
Derived Column Transformation
- 添加Derived Column转换,连接到Join输出
- 新增字段(如
is_match),用表达式count == expected_count标记实际与预期记录数是否匹配
Sink Transformation
- 添加Sink转换,连接到Derived Column输出,选择目标存储(如SQL表、Blob容器)保存验证结果
- 若需触发警报,可在Data Flow活动的「失败时」分支添加Webhook或Alert活动,当
is_match为false时触发
内容的提问来源于stack exchange,提问作者monica thopte
相关产品推荐
相关产品推荐

