在Kusto中​​解析数据

问题描述

我正在尝试在Kusto中​​解析以下数据。需要帮助。

[[ObjectCount][LinkCount][DurationInUs]]
[ChangeEnumeration][[88][9][346194]]
[ModifyTargetInLive][[3][6][595903]]

需要没有任何硬编码的通用实现。

解决方法

理想情况-您可以将以该格式生成源数据的组件更改为使用标准格式(例如CSV,Json等)。

以下方法可能有效,但是您应该考虑 效率很低

let T = datatable(s:string)
[
    '[[ObjectCount][LinkCount][DurationInUs]]','[ChangeEnumeration][[88][9][346194]]','[ModifyTargetInLive][[3][6][595903]]',];
let keys = toscalar(
    T
    | where s startswith "[["
    | take 1
    | project extract_all(@'\[([^\[\]]+)\]',s)
);
T
| where s !startswith "[["
| project values = extract_all(@'\[([^\[\]]+)\]',s)
| mv-apply with_itemindex = i keys on (
    extend Category = tostring(values[0]),p = pack(tostring(keys[i]),values[i + 1])
    | summarize b = make_bag(p) by Category
)
| project-away values
| evaluate bag_unpack(b)

--->

| Category           | ObjectCount | LinkCount | DurationInUs |
|--------------------|-------------|-----------|--------------|
| ChangeEnumeration  | 88          | 9         | 346194       |
| ModifyTargetInLive | 3           | 6         | 595903       |

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...