如何在 KQL 中使用变量?

how to use variables in KQL?

我正在尝试在 KQL 上编写一个带有变量的查询。 这是它的第一部分:

我想在其他查询中使用它来添加一个列,其中包含每个事件在总数中所占的百分比。换句话说 Percentage = EventNumber / totalEvents.

这是我的第二个查询:

但是当我尝试组合查询时出现错误。你能帮我解决这个问题吗?

您可以尝试使用 toscalar()https://docs.microsoft.com/en-us/azure/data-explorer/kusto/query/toscalarfunction

例如:

let total_events = toscalar(
    T
    | where Timestamp > ago(7d)
    | count
);
T
| where Timestamp > ago(7d)
| summarize count() by Event
| extend percentage = 100.0 * count_ / total_events

此外,您可以具体化子查询的结果并使用 as 运算符重新使用它们:https://docs.microsoft.com/en-us/azure/data-explorer/kusto/query/asoperator

例如:

T
| where Timestamp > ago(7d)
| summarize count() by Event
| as hint.materialized=true TT
| extend percentage = 100.0 * count_ / toscalar(TT | summarize sum(count_))