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

如何拆分Kusto查询为单日间隔执行后再聚合大区间数据?

Kusto分天聚合解决大跨度查询超时问题

原查询问题

原查询在查询单天数据时正常,但查询30天全量数据因数据量过大超时:

TableA
| where env_time > ago(30d)
| where Name in ("A", "B", "C", "D", "E")  // 原查询此处缺少逗号,已修正语法问题
| where Client == "Android"
| summarize count() by UserId, Name

改写后的分天查询方案

通过拆分日期范围、按天单独执行查询再合并结果,规避单查询处理超大数据量的问题:

// 生成过去30天的每日起始时间列表
let date_range = range start_time from ago(30d) to now() step 1d;
// 遍历每日时间范围,执行单天查询后合并结果
union (foreach (day_start in date_range) {
    TableA
    | where env_time between (day_start .. day_start + 1d)
    | where Name in ("A", "B", "C", "D", "E")
    | where Client == "Android"
    | summarize day_count = count() by UserId, Name
})
// 汇总所有天的统计结果
| summarize total_count = sum(day_count) by UserId, Name

关键说明

  • 日期范围拆分:用range函数生成精准的每日起始时间,确保每个子查询只处理单日数据
  • 分天独立查询:借助foreach遍历日期列表,复用单天查询的稳定性能,避免一次性加载全量数据
  • 结果分层聚合:先对单日数据做局部计数,再通过外层summarize汇总全局结果,保证最终统计维度与原查询一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 12:39:54