如何使用 Azure Kusto 从列中的拆分部分获取唯一 ID

问题描述 投票:0回答:1

我有一个返回所有用户 url 的 kusto 查询,我需要从 url 中获取 userId,并且只计算唯一值(按 userId)。 我已经做的是:使用
| project userIdSection = split(parse_url(url).Path, "/")[-1] 在查询中提取 userId。但是重复的很多,怎么只统计unique user ids呢?

当我对其应用 distinct 时,它会抛出错误:

union isfuzzy=true 请求 |其中 cloud_RoleName 包含“我的应用程序” |项目时间戳、id、名称、userIdSection = split(parse_url(url).Path, "/")[-1], 成功 |不同的 userIdSection

我期望的是,只取回唯一的 userId。谢谢!

azure azure-application-insights kql kusto-explorer azure-log-analytics-workspace
1个回答
0
投票

原因在错误描述中:

错误:不同的组键“userIdSection”属于“动态”类型。请使用显式转换,因为不支持按“动态”类型分组。

split的结果类型是

dynamic
,需要转成这样的字符串:

union isfuzzy=true requests 
| where cloud_RoleName contains "my-app" 
| project timestamp, id, name, userIdSection = tostring(split(parse_url(url).Path, "/")[-1]), success 
| distinct userIdSection

要获得不同值的计数,请使用

summarize dcount(userIdSection)
而不是
distinct userIdSection

© www.soinside.com 2019 - 2024. All rights reserved.