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

Azure Data Factory每日CSV批量入对应Azure SQL表的活动选型咨询

Azure Data Factory 批量CSV到SQL表加载方案(父-子管道模式)

针对你每日批量加载50个CSV到对应SQL表的需求,推荐使用父-子管道模式,这种模式更易维护、便于后续扩展,具体实现步骤如下:

一、父管道:元数据收集与批量触发

核心活动:Get Metadata、Filter、For Each

  1. Get Metadata 活动
    • 连接ADLS Gen2的目标文件夹,勾选Child items选项,获取文件夹内所有文件的元数据(含文件名、修改时间、路径等)。
  2. Filter 活动
    • 过滤出前一日生成的文件(适配23:00 CST接收、次日00:05 CST运行的时间窗口),过滤条件需转换时区后判断:
      @and(greaterOrEquals(convertTimeZone(item().lastModified, 'UTC', 'China Standard Time'), startOfDay(addDays(utcNow(), -1))), less(convertTimeZone(item().lastModified, 'UTC', 'China Standard Time'), startOfDay(utcNow())))
      
    • 若文件名包含日期标识,也可直接通过文件名字符串匹配过滤。
  3. For Each 活动
    • 遍历Filter输出的文件列表,在循环体内调用子管道,传递两个关键参数:
      • FileName:去掉.csv后缀的文件名(如@replace(item().name, '.csv', '')),用于匹配SQL表名
      • FilePath:文件的完整存储路径,用于子管道定位源文件

二、子管道:单文件到对应SQL表的加载

核心活动:Copy Data

  1. 源数据集配置
    • 选择ADLS Gen2数据集,将文件路径设置为父管道传入的FilePath参数;CSV格式配置需勾选“首行作为标题”(确保列名与SQL表匹配),并设置正确的分隔符。
  2. 目标数据集配置
    • 选择Azure SQL数据库数据集,将表名设置为父管道传入的FileName参数(@pipeline().parameters.FileName),确保SQL表列名与CSV首行标题完全一致。
  3. Copy Data 活动
    • 源端选择上述ADLS数据集,目标端选择SQL数据集;复制行为根据需求选择:
      • 若需覆盖每日数据:选择Truncate table then insert
      • 若需增量追加:选择Append

三、调度配置

在父管道中创建时间触发器:

  • 触发时间:每日00:05 CST,时区选择China Standard Time
  • 重复周期:1天

四、关键注意事项

  • 确保ADF的链接服务拥有ADLS Gen2的读取权限、Azure SQL的写入权限(如SQL的db_owner角色或对应表的读写权限)。
  • 若CSV无首行标题,需在Copy Data活动中手动映射列,但建议CSV保留首行标题以实现自动列映射。
  • 可调整For Each活动的并行度(默认20),根据资源情况设置合理数值(如20-30),平衡加载效率与资源占用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 21:05:32