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

将Microsoft Flow API数据导入Azure Log Analytics遇KQL语法错误

解决Azure Log Analytics中KQL mv-apply处理Flow API JSON数组的语法错误

核心用法示例

假设你的日志表中Body是嵌套数组结构,以下是适配Flow JSON数据的正确mv-apply写法:

// 替换为你的实际日志表名
FlowRunLogs
// 展开外层Body数组,用别名避免字段名冲突
| mv-apply FlowDetails = Body on (
    // 提取Flow顶层属性
    project 
        FlowName = FlowDetails.properties.displayName,
        RunId = FlowDetails.name,
        RunStatus = FlowDetails.properties.status,
        // 嵌套展开Flow内的动作数组
        mv-apply FlowActions = FlowDetails.properties.actions on (
            project 
                ActionName = FlowActions.name,
                ActionStatus = FlowActions.status,
                ActionDuration = FlowActions.duration
        )
)
// 输出最终需要的字段
| project 
    TimeGenerated,
    FlowName,
    RunId,
    RunStatus,
    ActionName,
    ActionStatus,
    ActionDuration

常见语法错误排查

  1. 字段别名冲突:
    不要直接用原字段名作为mv-apply的别名(比如mv-apply Body = Body on (...)),这会导致内部字段引用混乱,改用FlowDetails这类区分度高的别名。

  2. 嵌套数组处理不当:
    多层嵌套数组必须嵌套使用mv-apply块,每个块仅处理当前层级的数组,不要在同一个块内同时处理多层属性路径。

  3. 属性路径错误:
    Flow API返回的属性通常嵌套在properties节点下,需用FlowDetails.properties.displayName这类完整路径,而非直接引用顶层字段。

  4. 数据类型不匹配:
    先执行以下语句确认Body的类型:

    FlowRunLogs | take 1 | project Body, BodyType = typeof(Body)
    

    如果Body是字符串类型,需先用parse_json(Body)转换为动态数组后再执行mv-apply。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 03:57:10