【问题标题】:Kusto summarize where between?Kusto 总结在哪里?
【发布时间】:2021-08-31 03:38:13
【问题描述】:

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

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

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

示例数据

Line timestamp step group LogLine
1 2000-07-01T16:51 1 1 init
2 2000-07-01T16:52 2 1 start
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 end
7 2000-07-01T16:55 3 1 19%
8 2000-07-01T16:56 3 1 18%
9 2000-07-01T16:57 1 2 init
10 2000-07-01T16:58 2 2 start
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 end
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)

这可能吗?

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

group start% end% startTime endTime
1 20% 23% 2000-07-01T16:51 2000-07-01T16:54
2 45% 52% 2000-07-01T16:57 2000-07-01T17:02

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

【问题讨论】:

    标签: azure-data-explorer kql kusto-explorer


    【解决方案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;
    )
    

    【讨论】:

    • 注意事项(对于正在阅读本文的其他人):scan 运算符仅适用于 EngineV3。如果您正在运行 EngineV2,您可以打开支持票证,我们将迁移您的集群。 (无论如何,我们正在将所有集群从 V2 迁移到 V3)
    猜你喜欢
    • 1970-01-01
    • 2021-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-19
    • 2011-07-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多