【问题标题】:Transforming a list of objects into a table in Kusto在 Kusto 中将对象列表转换为表格
【发布时间】:2019-09-10 14:12:03
【问题描述】:

我正在尝试在我的一个数据表单元格中获取 json 数据(以键值对列表的形式)并将其转换为各种动态表。

T
| where id == "xyz"
| project telem_obj

telem_obj 单元格中的数据格式为

[ { “值”:“SomeKey01”, “钥匙”:“0” }, { “值”:“SomeKey02”, “钥匙”:“1” } ]

我的最终目标是获得表格;

|Key         | Value |
|SomeValue01 | 0     |
|SomeValue02 | 1     |

我已经设法通过取出静态数据并从中创建表来做到这一点。

print EnumVals = dynamic(
    [
      {
        "Value": "SomeKey01",
        "Key": "0"
      },
      {
        "Value": "SomeKey02",
        "Key": "1"
      }
    ]
)
| mvexpand EnumVals
| evaluate bag_unpack(EnumVals)

我不确定如何获取查询结果,从中提取此 json 对象列表并将其转换为新的动态表。我找不到任何适用于对象列表的示例。

【问题讨论】:

  • telem_obj 列的数据类型是什么?如果是string,您可以使用parse_json() 将其设为dynamic,然后在消息底部使用您的解决方案。如果已经是dynamic,您能否详细说明为什么您的消息底部的解决方案没有提供预期的结果?
  • 感谢您的回答。我的错误是试图将查询放入动态打印 EnumVals = dynamic( T | where id == "xyz" | project telem_obj ) | mvexpand EnumVals |评估 bag_unpack(EnumVals)

标签: azure-data-explorer


【解决方案1】:

睡了一夜之后,我找到了方法

T
| take 1 
| mvexpand telem_obj
| evaluate bag_unpack(telem_obj)
| project Value, Key

我的错误是我试图在 dynamic 函数中强制执行实际查询。

print EnumVals = dynamic(
  T
  | where id == "xyz"
  | project telem_obj
)
| mvexpand EnumVals
| evaluate bag_unpack(EnumVals)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-11
    • 1970-01-01
    • 1970-01-01
    • 2013-12-02
    • 1970-01-01
    • 2021-10-01
    相关资源
    最近更新 更多