【问题标题】:List comprehension equivalent in KustoKusto 中的列表理解等效项
【发布时间】:2021-10-04 10:10:23
【问题描述】:

我最近开始使用 Azure Resource Graph Explorer 来获取资源信息。 KQL 是我一直在研究的一个新事物,我需要帮助的一个问题是一种将字典数组操作为字符串值数组的方法。 举个例子:

考虑以下数据

{
  "customerId": "201",
  "orders": [
    {
      "dept": "/packaging/fruits"
    },
    {
      "dept": "/packaging/vegetables"
    }
  ]
}

使用以下查询:

Customers
| where customerId == 201
| project customerId, orders

结果如下:

我的问题是,如何修改查询以产生以下结果:

试图通过 KQL 文档,但似乎无法找到实现上述目的的正确方法。任何帮助将不胜感激!

【问题讨论】:

    标签: kql azure-resource-graph


    【解决方案1】:

    在 Kusto 中,您可以使用 mv-apply:

    datatable(customerId:int, orders:dynamic)
    [
      201, dynamic([
        {
          "dept": "/packaging/fruits"
        },
        {
          "dept": "/packaging/vegetables"
        }
      ]),
      201, 
      dynamic([
        {
          "dept": "/packaging2/fruits2"
        },
        {
          "dept": "/packaging2/vegetables2"
        }
      ])
    ]
    | where customerId == 201
    | mv-apply orders on (
        summarize orders = make_list(orders.dept)
    )
    
    customerId orders
    201 [
    "/packaging/fruits",
    "/packaging/vegetables"
    ]
    201 [
    "/packaging2/fruits2",
    "/packaging2/vegetables2"
    ]

    在 ARG 中,不支持 mv-apply,因此您可以使用 mv-expand

    datatable(customerId:int, orders:dynamic)
    [
      201, dynamic([
        {
          "dept": "/packaging/fruits"
        },
        {
          "dept": "/packaging/vegetables"
        }
      ]),
      201, 
      dynamic([
        {
          "dept": "/packaging2/fruits2"
        },
        {
          "dept": "/packaging2/vegetables2"
        }
      ])
    ]
    | where customerId == 201
    | extend rn = rand()
    | mv-expand orders
    | summarize orders = make_list(orders.dept) by rn, customerId
    | project-away rn
    
    customerId orders
    201 [
    "/packaging/fruits",
    "/packaging/vegetables"
    ]
    201 [
    "/packaging2/fruits2",
    "/packaging2/vegetables2"
    ]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-24
      • 2013-06-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多