Kusto KQL (Defender ATP) - 有什么方法可以按排序顺序比较字符串?

Kusto KQL (Defender ATP) - Any way to compare strings by sort order?

我正在尝试通过 Kusto/KQL 聚合生成帐户名称列表(尝试、失败和成功)。

预期结果很简单——一列字符串值,按字母顺序升序排列。

因为在 10k 个结果后它会切断我的联系,我现在正在寻找 chunk/paginate 这个结果集的方法。

对于每个页面请求,我想我会获取列表中的姓氏并将其附加到下一个查询 (| where AccountName > "bob.saget")。

Kusto 不会让我这样做;它会产生 Cannot compare values of types string and string. Try adding explicit casts 错误。

迂回的做事方式,但 strcmp 可以解决问题。

DeviceLogonEvents
| where isnotempty(AccountName)
| summarize by AccountName
| order by AccountName asc
| where strcmp(AccountName, 'bob.saget') > -1

虽然您最初的问题(如何按字典顺序比较字符串)的答案是使用 strcmp() 函数,但您真正想要的是分页,那是另一回事了:)

在 Kusto 中进行分页的正确方法是使用 Stored query results:

像这样检索第一页:

.set stored_query_result GiveItSomeName with (previewCount = 100) <|
// Your query comes here
DeviceLogonEvents
| where isnotempty(AccountName)
| summarize by AccountName
| order by AccountName asc
// Add a row number
| project RowNum = row_number()

像这样检索下一页:

stored_query_result("GiveItSomeName")
| where RowNum between (100 .. 200)