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

如何将ADF中Set Variable的数组输出写入Azure SQL表?

将ADF变量中的目录信息写入Azure SQL表的解决方案

你已经通过ADF管道遍历ADLS目录,将文件夹名称和最后修改日期收集到了名为allFiles的变量中,变量输出格式如下:

{
    "name": "allFiles",
    "value": [
        "FileName,LastUpdated",
        "final_directory1,2024-11-15T10:50:23+00:00",
        "all_entry_levels,2025-07-11T20:58:34+00:00",
        "final_directory,2025-07-11T21:01:38+00:00",
        "groceries_list,2025-07-11T21:04:44+00:00",
        "all_onetime_records,2025-07-11T21:04:58+00:00",
        "industries_list,2025-07-11T21:05:11+00:00",
        "SNAPSHOT_last,2025-07-11T21:05:25+00:00",
        "LATEST_information_farming,2025-07-11T21:05:38+00:00"
    ]
}

以下是两种可行的写入Azure SQL表的方法:

方法一:使用复制活动

  1. 预处理变量数据

    • 添加Filter活动,过滤掉数组中的表头元素,过滤条件设为@not(equals(item(), 'FileName,LastUpdated')),输出为仅包含数据行的数组。
    • 添加For Each活动,遍历Filter后的数组,在活动内部添加Append Variable活动,将每个CSV格式的字符串转换为结构化对象,值设为:
      {
          "FileName": "@split(item(), ',')[0]",
          "LastUpdated": "@split(item(), ',')[1]"
      }
      
      将结果存入新的变量(如structuredData),最终得到结构化对象数组。
  2. 配置复制活动源

    • 源数据集选择JSON类型,使用内联数据集,在源设置中选择变量作为数据源,指定值为@variables('structuredData')。
  3. 配置列映射

    • 在复制活动的「映射」标签页,将JSON对象的FileName和LastUpdated字段直接映射到Azure SQL表的对应列,确保SQL表字段类型匹配(LastUpdated建议用datetimeoffset类型)。

方法二:使用存储过程活动

  1. 创建SQL表类型和存储过程
    先在Azure SQL数据库中创建自定义表类型和存储过程:

    -- 创建自定义表类型
    CREATE TYPE DirectoryInfoType AS TABLE (
        FileName NVARCHAR(255),
        LastUpdated DATETIMEOFFSET
    );
    
    -- 创建存储过程
    CREATE PROCEDURE InsertDirectoryInfo
        @DirectoryInfo DirectoryInfoType READONLY
    AS
    BEGIN
        SET NOCOUNT ON;
        INSERT INTO YourTargetTableName (FileName, LastUpdated)
        SELECT FileName, LastUpdated FROM @DirectoryInfo;
    END;
    

    替换YourTargetTableName为实际的SQL表名。

  2. 预处理变量数据
    同方法一的步骤1,将allFiles变量转换为结构化对象数组structuredData。

  3. 配置存储过程活动

    • 连接到目标Azure SQL数据库,选择创建好的存储过程InsertDirectoryInfo。
    • 在参数配置中,添加表值参数,参数名设为@DirectoryInfo,类型选择DirectoryInfoType,值设置为@variables('structuredData')。

常见问题排查

  • 若存储过程无数据写入:检查表值参数的结构是否与自定义表类型匹配,查看ADF活动的输出日志确认参数传递是否正确。
  • 若复制活动映射失败:确保结构化数组的字段名与SQL表列名一致,或在映射中手动匹配字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 16:45:57