在Azure Data Factory复制活动中是否可以实现JSON文件扁平化?
结论先行
无法直接使用Azure Data Factory的Copy Activity完成该JSON文件的完全扁平化。
Copy Activity仅支持基础的单层数组展开能力,无法同时处理你提供的JSON中多层嵌套数组(外层domain_scores数组、内层abc/def数组、独立的tags数组)、嵌套对象range字段的关联映射和展开需求。
无需Data Flow的替代实现方案
方案1:Lookup Activity + Azure Function Activity
- 先通过Lookup Activity读取完整JSON文件内容,将JSON payload直接传递给Azure Function
- 在Azure Function中编写自定义代码完成JSON的遍历、展开逻辑,按需组装为你需要的扁平化结构
- 处理完成后可直接写入目标存储/数据库,也可输出为中间扁平化文件后再通过Copy Activity做最终落地
方案2:Copy Activity + 存储过程Activity(适用目标端为支持JSON解析的数据库,如SQL Server、Azure Synapse SQL池等)
- 先通过Copy Activity将整个JSON文件原样写入数据库临时表,临时表仅需设置一个
NVARCHAR(MAX)类型字段存储完整JSON内容 - 调用预编写的存储过程,使用数据库原生的JSON解析函数(如SQL Server的
OPENJSON)完成多层数组展开、嵌套字段提取,最终将处理好的扁平化数据写入正式目标表
- 先通过Copy Activity将整个JSON文件原样写入数据库临时表,临时表仅需设置一个
方案3:Copy Activity + Script Activity
逻辑和存储过程方案一致,无需提前创建存储过程,直接在Script Activity中编写JSON解析的SQL语句即可完成全流程处理,更适合轻量的一次性处理场景。
内容的提问来源于stack exchange,提问作者Lakshmi S
相关产品推荐
相关产品推荐

