1

我有一系列日志,我根据发生的某些步骤(基于行中的数据)对其进行分组

在序列正式结束(第 4 步)之后,一个步骤可能会重复多次,我想从汇总语句中拒绝那些。

在下表中,第一组应该在第 1 行和第 6 行之间,第二组应该在第 9 和第 14 行之间。我会按组总结这些,但我想拒绝每个序列在第 4 步之后出现的记录。

示例数据

线 时间戳 团体 日志线
1 2000-07-01T16:51 1 1 在里面
2 2000-07-01T16:52 2 1 开始
3 2000-07-01T16:53 3 1 20%
4 2000-07-01T16:53 3 1 21%
5 2000-07-01T16:53 3 1 23%
6 2000-07-01T16:54 4 1 结尾
7 2000-07-01T16:55 3 1 19%
8 2000-07-01T16:56 3 1 18%
9 2000-07-01T16:57 1 2 在里面
10 2000-07-01T16:58 2 2 开始
11 2000-07-01T16:59 3 2 45%
12 2000-07-01T17:00 3 2 47%
13 2000-07-01T17:01 3 2 52%
14 2000-07-01T17:02 4 2 结尾
15 2000-07-01T17:01 3 2 51%
16 2000-07-01T17:02 3 2 48%
17 2000-07-01T17:01 3 2 46%
18 2000-07-01T17:02 3 2 43%
19 2000-07-01T17:01 3 2 42%
20 2000-07-01T17:02 3 2 41%

基本上我试图做一个

summarize .........
by group where timestamp between (step1Timestamp, step4Timestamp)

这可能吗?

总结后我的期望(我知道该怎么做)。我只是不知道如何在步骤 1 和 4 的时间戳之间限制步骤 3 的结果。

团体 开始% 结尾% 开始时间 时间结束
1 20% 23% 2000-07-01T16:51 2000-07-01T16:54
2 45% 52% 2000-07-01T16:57 2000-07-01T17:02

请注意,我不能对步骤 3 中的百分比使用最小/最大值,因为它会给我在步骤 4 之后出现的某些分组的值。

4

1 回答 1

1

看起来已经有一个很棒的运算符了!感谢我的一位同事指出这一点。

scan操作员

https://docs.microsoft.com/en-us/azure/data-explorer/kusto/query/scan-operator

| scan with_match_id=m_id with 
(
    step s1: step== "1";
    step s2: step!= "4" and  timestamp - s1.timestamp <= 5m;
    step s3: step== "4"  and timestamp - s1.timestamp <= 5m;
)
于 2021-08-31T18:48:17.327 回答