【问题标题】:How to pivot log analytics data (Kusto)如何透视日志分析数据 (Kusto)
【发布时间】:2020-08-10 11:39:29
【问题描述】:

我一直在用头撞墙。我有以下数据(有点像键值对),我需要将设置名称设为列而不是行

let settings = datatable (Location:int , SettingName:string, SettingValue:string)
    [1, "PaperSize", "A4",
     1, "Orientation", "Vertical",
     1, "Colour", "False",
     2, "PaperSize", "A3",
     2, "Orientation", "Vertical",
     2, "Colour", "False",
     3, "PaperSize", "A4",
     3, "Orientation", "Horizontal",
     3, "Colour", "True"];
settings
| evaluate pivot(SettingName)

我期望 3 行,每个位置一个,每个设置(PaperSize、方向、颜色)加上位置的列。但我最终得到了 9 行和没有多大意义的数据。我想要得到的输出是:


+----------+-----------+-------------+--------+
| Location | PaperSize | Orientation | Colour |
+----------+-----------+-------------+--------+
|        1 | A4        | Vertical    | False  |
|        2 | A3        | Vertical    | False  |
|        3 | A4        | Horizontal  | True   |
+----------+-----------+-------------+--------+

真实数据有很多设置,所以理想情况下我不想在查询中硬编码 SettingNames。 我查看了其他功能,例如 bag 和 mv,但没有任何运气。也许这是不可能的,但任何想法都非常感谢

【问题讨论】:

    标签: azure-log-analytics azure-data-explorer kql


    【解决方案1】:

    您可以通过添加 any() 聚合来做到这一点(假设您对任何值感到满意)

    let settings = datatable (Location:int , SettingName:string, SettingValue:string)
        [1, "PaperSize", "A4",
         1, "Orientation", "Vertical",
         1, "Colour", "False",
         2, "PaperSize", "A3",
         2, "Orientation", "Vertical",
         2, "Colour", "False",
         3, "PaperSize", "A4",
         3, "Orientation", "Horizontal",
         3, "Colour", "True"];
    settings
    | evaluate pivot(SettingName, any(SettingValue))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-02
      • 2015-06-03
      • 2021-09-18
      • 2016-04-23
      • 1970-01-01
      • 2021-01-18
      • 1970-01-01
      • 2011-09-21
      相关资源
      最近更新 更多