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

在ADF中将Log Analytics API返回的嵌套JSON转为CSV

在Azure Data Factory中将Log Analytics API生成的JSON转换为CSV

针对你提供的Log Analytics API输出JSON结构(嵌套tables数组,包含columns表头定义和rows行数据),可以通过ADF的映射数据流完成转换,以下是具体步骤:

1. 配置JSON源组件

创建映射数据流,添加源组件并关联存储目标JSON的数据集:

  • 在源的JSON设置中,将Document form设为Single document
  • 在Path to array中填入$['tables'],让数据流将tables数组内的每个对象作为单独行读取

此时数据流每行包含name、columns(表头数组)、rows(二维行数据数组)三个字段。

2. 提取表头数组

添加派生列组件,用表达式提取columns中的name字段组成表头数组:

columns.name

将该派生列命名为HeaderArray,结果为["PipelineName","Status","TimeGenerated","_ResourceId","Type"]格式的数组。

3. 展开行数据数组

添加展开组件,选择rows字段:

  • 设置展开模式为Flatten entire array to rows
  • 将展开后的字段命名为RowData,此时每行对应原JSON中rows的一个子数组(如["Get_Tables","Succeeded",...])

4. 生成键值对数组

添加派生列组件,用zip函数将表头与行数据配对:

zip(HeaderArray, RowData)

将该列命名为KeyValuePairs,结果为[["PipelineName","Get_Tables"],["Status","Succeeded"],...]格式的键值对数组。

5. 展开键值对并透视成列

  • 先添加展开组件,选择KeyValuePairs字段,设置展开模式为Flatten entire array to rows,展开后得到每行包含Key(列名)和Value(对应值)的结构
  • 再添加透视组件:
    • 透视键选择Key字段
    • 透视值选择Value字段
    • 聚合方式选择First(确保每个列名对应唯一值)

完成后,数据流会生成以PipelineName、Status等为列名,对应行数据的标准表格结构。

6. 导出为CSV

添加**接收器(Sink)**组件,关联CSV格式的输出数据集,配置输出路径后运行数据流即可生成目标CSV文件。

额外注意事项

  • 如果JSON包含多个tables元素,可在步骤1后添加过滤组件,保留name == 'PrimaryResult'的表数据
  • 若需处理日期格式(如TimeGenerated),可在派生列中用toString(toTimestamp(字段名), 'yyyy-MM-dd HH:mm:ss')转换格式
  • 确保HeaderArray与RowData的长度一致,避免映射错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 23:26:04