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

如何用Kusto Query Language将每6行数据转为单行6列?

Kusto 查询解决方案

针对每6行重复的键值对日志格式,可通过以下Kusto查询将其转换为结构化单行数据:

// 假设原始日志表名为Logs,存储每行日志的列名为Line
Logs
| extend rn = row_number()
| extend groupId = rn // 6  // 按每6行划分一组
| parse Line with key ": " value
| extend value = replace_string(value, "'", "")  // 移除值两端的单引号
| extend value = replace_string(value, ",", "") // 移除行尾多余的逗号
| summarize props = make_bag(pack(key, value)) by groupId
| evaluate bag_unpack(props)
| rename timestamp = '@timestamp'  // 将@timestamp重命名为简洁的timestamp列
| project timestamp, msName, level, message, userId, req

步骤说明

  1. 分组标识:通过row_number()生成行号,再用整数除法// 6为每6行分配同一个分组ID,确保同一条日志的6个属性归为一组。
  2. 解析键值:使用parse操作符拆分每行的键(如@timestamp、msName)和对应值。
  3. 清理数据:用replace_string移除值中的单引号和行尾逗号,避免格式干扰后续聚合。
  4. 聚合转结构:make_bag将每组内的键值对打包为动态对象,bag_unpack把动态对象展开为结构化列。
  5. 列调整:重命名@timestamp列并指定输出列顺序,匹配目标格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 15:40:28