You need to enable JavaScript to run this app. ADF中从Azure SQL列值派生复杂类型数组输出JSON到Blob存储的实现
优惠活动
大模型
产品
解决方案
定价
更多

ADF中从Azure SQL列值派生复杂类型数组输出JSON到Blob存储的实现

Azure数据工厂实现结构化JSON转换的落地方案

整条实现链路基于ADF原生功能搭建,不需要额外集成第三方服务或自定义代码,核心流程为:Azure SQL Database 源读取 → 结构化转换 → Blob Storage 输出JSON文件。

1. 源端配置

  • 新建Azure SQL Database类型的数据集,绑定对应的业务库表,配置读取规则时仅固定提取phone、mobile两列,减少冗余数据传输。
  • 可在源查询中对空值字段做兜底处理,比如将NULL值替换为空字符串,避免后续结构生成时触发空值报错。

2. 结构化转换实现

方案1:映射数据流(推荐,无代码逻辑)

映射数据流的数组构造能力可以完全匹配当前固定两列的转换规则,操作步骤:

  • 将源数据集接入新建的映射数据流,首先添加派生列转换,通过自定义表达式构造目标要求的contact数组:
    contact = [
      (number: phone, type: "phone"),
      (number: mobile, type: "mobile")
    ]
    
    该构造逻辑会严格保证数组索引顺序:第0个元素对应固定phone类型的号码,第1个元素对应固定mobile类型的号码,完全匹配需求的结构规则。
  • 添加选择转换,移除原始输入的phone、mobile两列,仅保留生成的contact字段作为最终输出结构。
  • 若电话号码需要做格式清洗(比如去除横杠、空格等特殊字符),可直接在派生列表达式中嵌套替换函数处理,例如:
    // 示例:去掉号码中的横杠字符
    (number: replace(phone, '-', ''), type: "phone")
    

方案2:Wrangling Data Flow(Power Query模式,备选)

如果更习惯使用Power Query语法,也可以通过Wrangling Data Flow实现等价效果,通过自定义列构造JSON数组结构,最终输出的层级和映射数据流一致,适合熟悉Power Query逻辑的使用者。

3. Blob Storage Sink配置

  • 新建Blob Storage类型的数据集,文件格式选择JSON,根据下游消费需求选择输出格式(标准JSON数组、或NDJSON逐行JSON对象)。
  • 数据流的sink环节直接绑定上述Blob数据集,映射环节无需手动调整层级,直接将输出的contact字段映射为JSON文件的顶层结构即可。

落地校验要点

  • 小样本测试时优先检查数组元素顺序,避免出现contact数组索引与类型不匹配的问题。
  • 若输出的JSON存在多余的空嵌套层级,可通过sink的投影设置移除冗余包装节点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.05 00:54:01