【问题标题】:KQL: Unpacking array into columnsKQL:将数组解包成列
【发布时间】:2021-05-19 10:26:05
【问题描述】:

我有以下记录:

Message = User: Value1 \r\nComponent: Value2\r\nResult description: Value3\r\nName: Value4
Message = Event type: ValueA\r\nApplication: ValueB\r\nApplication\\Path: ValueC\r\nUser: ValueD

使用| extend Message = split(Message, "\\r\\n")我得到以下结果:

Message = ["User:Value1", "Component:Value2", "Result description:Value3", "Name:value4"]
Message = [Event type:ValueA", "Application:ValueB", "Path:ValueC","User: ValueD"]

我想在这里使用“键”作为列名,并使用“值”来填充它们:

User  |Component| ResultDescription| Name | EventType | Application | Path
_________________________________________________________________________
Value1|Value2   | Value3           |Value4|           |             |
ValueD|         |                  |      | ValueA    | ValueB      | ValueC

我尝试过同时使用mv_expandbag_unpack,但我成功完成的最多看起来像这样:

Message
__________
["User:value1]
["Component:value2]
["ResultDescription:value3]

等等。

我该怎么做?

【问题讨论】:

    标签: kql


    【解决方案1】:

    效率不高,但你可以试试这个:

    1. 使用extract_all()从输入消息中提取键值对
    2. 使用mv-apply 扩展对,并使用summarize make_bag() 从它们中创建一个属性包
    3. 使用evaluate bag_unpack()将属性包解压成列

    [注意:您可能需要调整以下示例中使用的正则表达式以匹配您的键/值的内容]

    datatable(s:string)
    [
        'Message = User: Value1 \r\nComponent: Value2\r\nResult description: Value3\r\nName: Value4',
        'Message = Event type: ValueA\r\nApplication: ValueB\r\nApplication\\Path: ValueC\r\nUser: ValueD',
    ]
    | mv-apply e = extract_all(@"(\w+): (\w+)", dynamic([1,2]), s) on (
        project p = pack(tostring(e[0]), e[1])
        | summarize b = make_bag(p)
    )
    | evaluate bag_unpack(b)
    
    s Application Component description Name Path type User
    Message = User: Value1
    Component: Value2
    Result description: Value3
    Name: Value4
    Value2 Value3 Value4 Value1
    Message = Event type: ValueA
    Application: ValueB
    Application\Path: ValueC
    User: ValueD
    ValueB ValueC ValueA ValueD

    【讨论】:

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