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

如何在Azure Data Factory中不使用数据流实现列聚合与分组?

在Azure Data Factory中不使用数据流实现聚合/分组的替代方案

方法1:复制活动直接用源查询完成聚合

这是最直接高效的方式,把聚合逻辑直接放到源端的SQL查询里,不需要额外的活动编排:

  • 配置本地SQL Server源数据集时,选查询作为数据检索模式,写带GROUP BY的聚合语句,比如:
    SELECT 分组列名, SUM(统计列1) AS 聚合结果1, COUNT(*) AS 统计数量
    FROM 本地原始表
    GROUP BY 分组列名
    
  • 这个查询会直接在本地SQL Server上完成计算,只返回你需要的5条唯一聚合结果,接着用复制活动把结果直接写入Azure SQL的目标表就行。
  • 优势:不用额外折腾ADF的活动,性能靠源数据库引擎支撑,像你这种99条原始数据的小体量场景完全适配。

方法2:Lookup活动+聚合查询配合复制活动

如果需要先确认聚合结果再加载,或者要加一些前置校验逻辑,可以用这个方式:

  • 加一个Lookup活动,连接本地SQL Server数据源,同样用上面的聚合SQL语句获取5条结果。
  • 再添加复制活动,源选择Lookup活动的输出,目标配置成Azure SQL的目标表。
  • 要是需要校验结果行数(比如确认是不是刚好5条),可以在Lookup活动之后加个If Condition活动,判断@activity('Lookup活动名称').output.count是否等于5,再决定是否执行复制。

方法3:用存储过程活动处理聚合

如果聚合逻辑比较复杂,或者后续要复用这个逻辑,可以用存储过程来实现:

  • 要么在本地SQL Server创建存储过程:
    CREATE PROCEDURE dbo.执行聚合逻辑
    AS
    BEGIN
        SELECT 分组列名, SUM(统计列1) AS 聚合结果1, COUNT(*) AS 统计数量
        FROM 本地原始表
        GROUP BY 分组列名
    END
    
    然后在ADF里加存储过程活动,连接本地SQL Server调用这个存储过程,把输出结果通过复制活动写入Azure SQL。
  • 要么把存储过程建在Azure SQL里:先把本地原始数据复制到Azure SQL的临时表,再调用存储过程完成聚合并写入目标表,这种方式适合后续要多次复用聚合逻辑的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 01:10:01