Kustos bag_unpack 没有解压我的 json 字典字符串

Kustos bag_unpack does not unpack my json dictionary string

我有以下数据,我想在 Kusto 中将这些数据分成几列以访问字典条目的值:

这是我用来从图片中获取 table 的代码:

let latestVersionAndroid = toscalar(customEvents
| where client_OS contains "Android"
| summarize max(application_Version));
let releaseDateLatestAndroid = toscalar(customEvents
| where client_OS contains "Android" and application_Version contains latestVersionAndroid
| summarize min(timestamp));
customEvents
| where timestamp > releaseDateLatestAndroid
    and name == 'Login'
    and client_OS contains 'Android'
    and application_Version == latestVersionAndroid
| project properties = customDimensions.Properties, application_Version
| evaluate bag_unpack(properties)

我认为最后一行会展开属性的内容并从中创建一个新的 table。 但正如您在图像中看到的那样,它只是显示与没有评估线相同的结果。 是不是因为在用作列名的键中有空格? 但是我除了 kusto 抛出异常,如果它因此无法完成操作? 是否有另一种方法可以提取 Kusto 中的数据以访问键的值?

非常感谢, 特立独行

可能会发生,因为看起来像 json 的“属性”实际上是一个字符串。如果是这种情况,您应该尝试将 json 当作字符串来解析,然后执行 bag_unpack。例如更改此行:

| project properties = customDimensions.Properties, application_Version

为此:

| project properties = parse_json(tostring(customDimensions.Properties)), application_Version

为了访问带有空格的列,您需要像这样将它们放在方括号中

| summarize count()
    by application_Version, ["DW version"]