【问题标题】:Kusto Query - Display most recent rowKusto 查询 - 显示最近的行
【发布时间】:2021-09-08 23:06:42
【问题描述】:

我刚开始使用 Kusto 查询语言。仍在努力掌握所有内容。

所以我有一个查询来获取一些带有时间戳的登录事件。 但我只对最近日期的唯一值感兴趣。

Distinct 不是一个选项,因为由于此时间戳,所有行都不同。 此外,查询返回的结果太多,因此无法处理。

获取所有日志的查询是:

SigninLogs
| project TimeGenerated, Identity, UserPrincipalName, Location, DeviceDetail

【问题讨论】:

    标签: kql


    【解决方案1】:

    你应该可以使用arg_max()聚合函数:https://docs.microsoft.com/en-us/azure/data-explorer/kusto/query/arg-max-aggfunction

    如果经常这样做 - 考虑使用该逻辑创建物化视图:https://docs.microsoft.com/en-us/azure/data-explorer/kusto/management/materialized-views/materialized-view-overview

    例如:

    datatable(a:int, b:int, c:string, d:datetime)
    [
        1, 2, "3", datetime(2021-09-08 15:05:10),
        4, 5, "6", datetime(2021-09-08 15:05:17),
        4, 5, "6", datetime(2021-09-08 15:05:43),
        1, 2, "3", datetime(2021-09-08 15:05:27),
        1, 2, "4", datetime(2021-09-08 15:05:53),
    ]
    | summarize arg_max(d, *) by a, b, c
    
    a b c d
    1 2 3 2021-09-08 15:05:27.0000000
    4 5 6 2021-09-08 15:05:43.0000000
    1 2 4 2021-09-08 15:05:53.0000000

    【讨论】:

    • 已经看过了。它只会返回一行而不是所有行。我需要所有行,但只需要最近日期的行,例如身份不同的行。
    • 听起来您没有按键指定任何组,因此只有一行。
    • 你是对的,Yoni。谢谢你。我还是 Kusto Query 的新手,还在学习。我也会检查物化视图。这确实是我必须经常使用的东西。
    猜你喜欢
    • 2023-03-31
    • 1970-01-01
    • 2020-03-05
    • 2015-12-18
    • 2016-03-11
    • 1970-01-01
    • 2021-02-28
    • 2022-11-16
    • 1970-01-01
    相关资源
    最近更新 更多