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

Azure Log Analytics中Kusto查询结果转JSON及分页实现问询

解决方案

1. 实现Kusto查询的分页逻辑

要实现分页,需要同时执行两个Kusto查询:

  • 查询总条数:获取数据总量用于计算分页参数
    <tablename> | count
    
  • 查询当前页数据:用skip跳过前面的条目,take获取当前页的数量
    <tablename> | skip (pageNumber - 1) * pageSize | take pageSize
    
    比如第1页每页2条:skip 0 | take 2,第2页:skip 2 | take 2

2. 将返回结果映射为键值对数组

假设Azure返回的JSON结构如下(简化版):

{
  "tables": [
    {
      "columns": [{"name": "TimeStamp"}, {"name": "Level"}, {"name": "Message"}],
      "rows": [
        ["2024-05-20T10:00:00Z", "Info", "User logged in"],
        ["2024-05-20T10:05:00Z", "Error", "Database connection failed"]
      ]
    }
  ]
}

可以用以下代码(以JavaScript为例)将rows和columns映射为docs数组:

// 提取返回结果中的第一个表(通常查询结果只有一个表)
const resultTable = response.tables[0];
const columns = resultTable.columns.map(col => col.name);
const rows = resultTable.rows;

// 映射为键值对数组
const docs = rows.map(row => {
  const doc = {};
  columns.forEach((colName, index) => {
    doc[colName] = row[index];
  });
  return doc;
});

处理后docs的结构:

[
  {"TimeStamp": "2024-05-20T10:00:00Z", "Level": "Info", "Message": "User logged in"},
  {"TimeStamp": "2024-05-20T10:05:00Z", "Level": "Error", "Message": "Database connection failed"}
]

3. 组装最终的分页JSON结构

将总条数、分页参数和映射后的docs组装成UI需要的结构:

const pageNumber = 1; // 当前页码,从前端传入
const pageSize = 2; // 每页条数,从前端传入
const totalDocs = countResult.tables[0].rows[0][0]; // 总条数查询结果

const finalResponse = {
  totalDocs: totalDocs,
  page: pageNumber,
  pageSize: pageSize,
  totalPages: Math.ceil(totalDocs / pageSize),
  docs: docs
};

最终输出的JSON示例:

{
  "totalDocs": 100,
  "page": 1,
  "pageSize": 2,
  "totalPages": 50,
  "docs": [
    {"TimeStamp": "2024-05-20T10:00:00Z", "Level": "Info", "Message": "User logged in"},
    {"TimeStamp": "2024-05-20T10:05:00Z", "Level": "Error", "Message": "Database connection failed"}
  ]
}

注意事项

  • 如果你的查询有过滤条件(比如where子句),总条数查询和分页查询要保持一致的过滤条件,避免数据总数和分页数据不匹配
  • 若使用后端语言(如C#、Python)处理,逻辑类似:提取列名列表,遍历行数据映射为键值对对象,再组装分页结构

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 22:05:16