【问题标题】:Aggregate/Summarize Timeseries data in Azure Data Explorer using Kusto使用 Kusto 在 Azure 数据资源管理器中聚合/汇总时间序列数据
【发布时间】:2021-08-20 23:50:31
【问题描述】:

我有一个要求,我需要将每 1 秒轮询一次的数据规范化/聚合为 1 分钟间隔。我有两列也需要聚合,比如 SensorName、SensorValue。我能够将时间戳设置为 1 分钟,但我无法获得相应的两个列。我怎么做?下面是我使用的查询和得到的输出。

Table
| where TimeStamp between (datetime(2020-09-01)..datetime(2020-09-30))
| summarize by bin(TimeStamp , 1min)

【问题讨论】:

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


    【解决方案1】:

    根据我对问题的理解(可能是错误的,因为没有明确的示例输入/模式和匹配输出规范),您可以尝试按照此示例进行操作 - 它计算每个传感器名称的平均传感器值,使用1分钟的聚合跨度:

    Table
    | where TimeStamp between (datetime(2020-09-01)..datetime(2020-09-30))
    | summarize avg(SensorValue) by SensorName, bin(TimeStamp, 1min)
    

    【讨论】:

    • 谢谢你。我认为它有效。但是 SensorValue 中的某些值是布尔值,例如 True 和 False。 avg() 条件会起作用吗?
    • 函数 'avg()' 与参数不兼容(动态)--我收到此消息
    • 如答案中所述,这只是一个示例。您应该根据需要选择聚合函数。您可以根据动态列中的属性扩展/转换为强类型列。见:docs.microsoft.com/en-us/azure/data-explorer/kusto/query/…
    • 谢谢你。一旦我发现问题,将使用修改后的查询更新答案。
    • 我能够通过使用 cast.Table | 获得我需要的结果。其中时间戳介于 (datetime(2020-09-01)..datetime(2020-09-30)) |按 SensorName 汇总 avg(tolong(SensorValue)), bin(TimeStamp , 1min)
    猜你喜欢
    • 2021-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多