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

使用Azure Data Factory将API的JSON数据加载至ADX(Kusto)的问题

解决ADF提取JSON content数组并写入ADX单行的方案

步骤1:定位并提取JSON中的content数组

Web活动返回的JSON结构示例:

{
  "content": [{"id":1, "value":100}, {"id":2, "value":200}],
  "numOfPages": 1,
  "totalElements": 2
}

直接用ADF表达式定位content数组:
@activity('你的Web活动名称').output.content

步骤2:拆分数组并写入ADX表

方案A:ForEach活动单条写入

  • 添加ForEach活动,将Items属性设置为上述表达式,可选择并行(默认,效率更高)或串行执行。
  • 在ForEach内部添加Azure Data Explorer Command活动,输入Kusto命令:
    .append Readings <| print Readings=dynamic('@{string(item())}')
    
    其中item()代表当前遍历的Reading实体,转成字符串后再转为ADX的dynamic类型,直接写入Readings列。

方案B:Copy活动批量写入(推荐)

  • 添加Copy活动,源选择Inline数据集,格式选JSON,在Source的JSON path中填入$..content,直接提取数组作为数据源。
  • 目标选择ADX数据集,指定目标表名。在Mapping中,将源的整个JSON对象映射到目标表的Readings列(源列选$,目标列选Readings,类型匹配dynamic)。
  • 运行Copy活动,ADF会自动将content数组的每个元素拆分为一行写入ADX。

后续扩展列的处理

当前Readings列存储完整JSON对象,后续扩展列可直接在ADX中执行Kusto命令拆分:

Readings
| extend
    ReadingId = Readings.id,
    ReadingValue = Readings.value,
    ReadingTime = Readings.timestamp
| project-away Readings

也可以在ADF中添加Derived Column活动,提前拆分JSON字段后写入多列的ADX表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 07:47:20