【问题标题】:Split KQL array into multiple columns将 KQL 数组拆分为多列
【发布时间】:2021-01-27 01:32:59
【问题描述】:

我正在尝试在 Azure Sentinel 的工作簿中构建仪表板。其中一列是不同长度的 JSON 数组。我想拆分该数组,以便数组中的每个元素都成为自己的列,但我想不出一个好方法来做到这一点。基本上我想要这个

-----------------------------------
Company | products
-----------------------------------
Apple     | [iMac, iPhone, iPad]
Microsoft | [xBox, xBox 360]
Google    | [Chromebook]
--------------------------------------

成为

-----------------------------------
Company | product_1 | product_2 | product_3
-----------------------------------
Apple | iMac        |iPhone     |iPad
Microsoft | xBox    |xBox 360   |
Google | Chromebook |           |
--------------------------------------

【问题讨论】:

    标签: azure kql azure-sentinel


    【解决方案1】:

    效率不高,但有一个选择:

    datatable(company:string, products:dynamic)
    [
        "Apple",     dynamic(['iMac', 'iPhone', 'iPad']),
        "Microsoft", dynamic(['xBox', 'xBox 360']),
        "Google",    dynamic(['Chromebook']),
    ]
    | mv-apply with_itemindex=i products on (
        extend p = pack(strcat("product_", i+1), products)
        | summarize b = make_bag(p)
    )
    | evaluate bag_unpack(b)
    | project-reorder company, product* asc
    

    -->

    | company   | product_1  | product_2 | product_3 |
    |-----------|------------|-----------|-----------|
    | Apple     | iMac       | iPhone    | iPad      |
    | Microsoft | xBox       | xBox 360  |           |
    | Google    | Chromebook |           |           |
    

    【讨论】:

    • hm 我认为这应该可行。如果有人有更高效的东西,我会保持这个开放时间更长一点
    • 尝试一下,看起来使用这种方法没有保留订单。有没有办法调整它以保证订单被保留?
    • 您可能想澄清哪个顺序未保留(行?列?)并提供一个示例来说明您所询问的问题。
    • 不保留列的顺序。因此,例如,表格可能看起来像````product_2 |产品 1 |产品 4 |产品 3```我的猜测是它是根据存储值的哈希表“bag”进行排序的,这就是为什么它会丢失它的顺序
    • 您可以使用project-reorder 来克服这个问题。我已经用那个例子更新了我的回复
    猜你喜欢
    • 2021-12-28
    • 1970-01-01
    • 1970-01-01
    • 2017-04-22
    • 2016-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多