如何在KQL中不使用Summarize绘制预平均时间序列数据?
解决预平均时间序列的无额外分箱可视化问题
你的核心需求是避免Kusto自动对预平均的时间数据做二次分箱聚合,直接用原始时间点绘制两个速率序列,解决方案如下:
关键修改:替换渲染类型并确保排序
Kusto的timechart会默认对时间轴做分箱并聚合数据,这会破坏你已预计算好的平均值。改用linechart即可跳过自动分箱,直接使用数据中的每个时间点,同时要确保数据按时间排序保证图表顺序正确。
修改后的完整代码:
// 关联表并准备数据 let AnalysisTbl = InputRateAnalysisTbl | join kind=inner ProcessingRateAnalysisTbl on applicationId_s, TimeGenerated | project inputRate, processingRate, applicationId_s, TimeGenerated | sort by TimeGenerated asc; // 按时间升序排序,保证图表时间顺序正确 // 绘制折线图,无额外分箱 AnalysisTbl | render linechart with ( xcolumn=TimeGenerated, ycolumns=inputRate, processingRate, title="输入速率与处理速率趋势", legend=visible )
特殊情况处理
如果你的数据中存在同一TimeGenerated对应多条重复记录(理论上预平均后不会出现,但可以提前处理避免异常),可以通过summarize保留原始预计算值:
let AnalysisTbl = InputRateAnalysisTbl | join kind=inner ProcessingRateAnalysisTbl on applicationId_s, TimeGenerated | project inputRate, processingRate, applicationId_s, TimeGenerated // 按时间和应用ID去重,保留原始预平均数值 | summarize inputRate=any(inputRate), processingRate=any(processingRate) by applicationId_s, TimeGenerated | sort by TimeGenerated asc; AnalysisTbl | render linechart with ( xcolumn=TimeGenerated, ycolumns=inputRate, processingRate, title="输入速率与处理速率趋势", legend=visible )
内容的提问来源于stack exchange,提问作者DataBach
相关产品推荐
相关产品推荐

