azure-log-analytics - 如何透视日志分析数据 (Kusto)
问题描述
我一直在用头撞墙。我有以下数据(有点像键值对),我需要将设置名称设为列而不是行
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。我看过其他功能,如包和 mv,但没有任何运气。也许这是不可能的,但任何想法都非常感谢
解决方案
您可以通过添加 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))
推荐阅读
- javascript - 在 Kubernetes 上配置 NATS max_payload
- google-apps-script - Google 表格:创建一个下拉菜单,在源代码范围内维护字体格式
- firebase - 将 FCM 从一个 Firebase 帐户发送到使用不同包名称编译的应用
- kubernetes - 带有 flannel 的 Kubernetes 集群 - 端口转发
- python - 如何在 django 框架中更改特定数据库列的值
- c# - 如何在 C# 的数组中找到某个位置的值?
- javascript - 如何解决 React Native 中的无效钩子调用错误
- python - 在多个工作人员之间共享 python 对象
- python - 为什么我的 Selenium URL_to_be 语句不起作用?
- arcgis - 地理ToWebMercator 和投影多边形仅在单击缩放按钮角10 后出现