gpt4 book ai didi

azure - 如何避免 KQL 查询中的数据点过多 (10000)?

转载 作者:行者123 更新时间:2023-12-02 23:03:02 27 4
gpt4 key购买 nike

在工作簿中,我显示了一个时间图表,比较限制请求与非限制请求。该查询使用了汇总运算符,虽然其功能正常,但经常遇到“数据点过多 (10000)”错误。我尝试使用限制运算符,但它不起作用(我认为这是因为汇总运算符正在执行两个操作并且其中一个操作的数据点超出了这一事实)

此外,我在工作簿中包含了一个时间范围选择器来限制时间跨度,但即使在繁忙的一天中的一个小窗口也可能导致出现错误。

我也在考虑以另一种方式限制记录,但我不确定如何。图表必须显示 RPS,因此无法将其更改为 RPM。

 Requests
| project TimeGenerated, ResultType
| summarize Throttled = countif(ResultType == "Throttled") , Total_Requests = count() by bin(TimeGenerated,1s);
//| limit 9999 <-- This does not work

enter image description here

最佳答案

这是一个简单的渲染问题。

首先-
总是有限制的,无论是图形可视化库、屏幕显示分辨率、网络浏览器可以处理的数据量而不被卡住等等。

第二个-
盯着这样的图表你不会得到任何好处:

Overpacked graph

您需要降低图表的粒度。
这里有一些选项。

附注
我经常更喜欢make-seriessummarize ,因为它处理缺失值。
请注意,这可能会带来额外的资源利用率。

1。增加垃圾箱大小

选择不在1s1m之间。
你有一个介于两者之间的整个范围,例如bin(生成时间,15s)

let Requests = materialize(range i from 1 to 1000000 step 1 | extend TimeGenerated = ago(1d*rand()), ResultType = case(rand() < 0.02, "Throttled", "Other"));
Requests
| make-series Throttled = countif(ResultType == "Throttled") , Total_Requests = count() on TimeGenerated step 15s
| render timechart

Fiddle

Increased bin

2.使用双重聚合

首先按1s聚合,然后按更大的时间跨度(例如10m)重新聚合,显示峰值。通过这种方式,您的图表会变得更加稀疏,但是您不会丢失 1s 粒度中的异常值。

let Requests = materialize(range i from 1 to 1000000 step 1 | extend TimeGenerated = ago(1d*rand()), ResultType = case(rand() < 0.02, "Throttled", "Other"));
Requests
| summarize Throttled = countif(ResultType == "Throttled") , Total_Requests = count() by bin(TimeGenerated,1s)
| make-series max(Throttled), max(Total_Requests) on TimeGenerated step 10m
| render timechart

Fiddle

Double aggregation

3.专注于你真正追求的东西

很多时候,我们可以采取额外的步骤来创建真正强调我们感兴趣的现象的可视化。
在本例中,它可能是 ThrottledTotal_Requests 之间的比率,然后我们可以使用一行,这样就可以很容易地理解什么是正在进行中。
这张图可以和前面的图一起使用,这样我们就不会丢失全貌。

let Requests = materialize(range i from 1 to 1000000 step 1 | extend TimeGenerated = ago(1d*rand()), ResultType = case(rand() < 0.02, "Throttled", "Other"));
Requests
| summarize Throttled = countif(ResultType == "Throttled"), Total_Requests = count() by bin(TimeGenerated, 1s)
| make-series ratio = max(1.0 * Throttled / Total_Requests) on TimeGenerated step 5m
| render timechart

Fiddle

Ratio

关于azure - 如何避免 KQL 查询中的数据点过多 (10000)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72496622/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com