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

在Azure Data Factory中合并数百个数据集的最优实现方案

方案1(推荐):Synapse无服务器SQL池预合并(成本最低、操作最简)

你已经将预处理后的分库表按目录存储在ADLS中,无需额外数据搬运,直接通过无服务器SQL池的通配符路径查询能力合并同源表:

  • 为每类同源表创建1张外部表,LOCATION参数配置通配符匹配所有分库的对应表目录,示例语句如下:
CREATE EXTERNAL TABLE dim_customer_merged
(
    customer_id INT,
    customer_name NVARCHAR(200),
    -- 其余字段和原表结构完全对齐
)
WITH (
    LOCATION = 'processed/*/dim_customer/*.parquet', -- 通配符*匹配所有分库目录
    DATA_SOURCE = <你的ADLS数据源名称>,
    FILE_FORMAT = <你定义的Parquet文件格式>
);
  • 写入专用SQL池(Synapse数据仓库)时,仅需执行一次CTAS(CREATE TABLE AS SELECT)语句,单表仅提交1次写入作业,完全规避200倍的写入开销,合并计算用无服务器SQL池按扫描数据量计费,成本远低于多次提交专用池写入作业。
  • 增量同步场景可在路径中增加时间分区通配符,仅扫描更新时段的文件,性能和成本表现更优。

方案2:Azure Data Factory 复制活动合并(零代码、易维护)

如果偏好全可视化操作,可通过ADF的单复制活动完成多文件合并写入:

  • 为每类同源表配置1个复制活动,源端选择ADLS对应路径,配置文件通配符为*/[表名]/*.parquet,一次性读取所有分库的同类型表文件;
  • Sink端指向Synapse专用SQL池的目标表,开启批量插入优化和副本最小写入开关,单表仅跑1次作业,写入成本仅和总数据量挂钩,和源库数量无关。

方案3:Data Flow 预处理阶段合并(适配现有流逻辑)

如果已经在使用Data Flow做数据清洗转换,可直接调整Data Flow的源配置:

  • 源路径配置通配符匹配所有分库的同源表文件,一次性读入全量同源数据后做转换,最终直接写入Synapse目标表,单表仅运行1次Data Flow作业;
  • 开启Data Flow的分区优化、分片读取配置,避免单作业内存溢出问题。

通用优化建议:ADLS中存储的预处理后文件统一使用Parquet/Delta格式,开启Snappy压缩,可降低30%以上的IO和计算开销。

内容的提问来源于stack exchange,提问作者FRY-9C

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 20:57:02