代码之家  ›  专栏  ›  技术社区  ›  Gregory Suvalian

如何在Kusto中创建自定义输出对象

  •  0
  • Gregory Suvalian  · 技术社区  · 5 年前

    我有如下数组作为我的对象的属性之一。我想提取某些字段,并在输出中将其作为数组返回。例如,我只想要 name storageAccountType 如下图所示返回

    期望输出

    [
        {
            "name": "Data",
            "storageAccountType": "Standard_LRS"
        },
        {
            "name": "Disk2",
            "storageAccountType": "Standard_LRS"
        }
    ]
    

    输入阵列

    [
        {
            "name": "Data",
            "createOption": "Attach",
            "diskSizeGB": 10,
            "managedDisk": {
                "id": "/subscriptions/24ba3e4c-45e3-4d55-8132-6731cf25547f/resourceGroups/GREG/providers/Microsoft.Compute/disks/Data",
                "storageAccountType": "Standard_LRS"
            },
            "caching": "None",
            "toBeDetached": false,
            "lun": 0
        },
        {
            "name": "Disk2",
            "createOption": "Attach",
            "diskSizeGB": 10,
            "managedDisk": {
                "id": "/subscriptions/24ba3e4c-45e3-4d55-8132-6731cf25547f/resourceGroups/GREG/providers/Microsoft.Compute/disks/Disk2",
                "storageAccountType": "Standard_LRS"
            },
            "caching": "None",
            "toBeDetached": false,
            "lun": 1
        }
    ]
    
    1 回复  |  直到 5 年前
        1
  •  0
  •   Yoni L.    5 年前

    以下是您可以遵循的方向(假设您实际上需要返回数组,而不是让数组中的每个元素都在自己的行中)。如果后者很好,请删除带有注释的行( // * )

    datatable(some_value:string, d:dynamic) // just a sample data set with 2 records
    [
        "hello", dynamic([
        {
            "name": "Data",
            "createOption": "Attach",
            "diskSizeGB": 10,
            "managedDisk": {
                "id": "/subscriptions/24ba3e4c-45e3-4d55-8132-6731cf25547f/resourceGroups/GREG/providers/Microsoft.Compute/disks/Data",
                "storageAccountType": "Standard_LRS"
            },
            "caching": "None",
            "toBeDetached": false,
            "lun": 0
        },
        {
            "name": "Disk2",
            "createOption": "Attach",
            "diskSizeGB": 10,
            "managedDisk": {
                "id": "/subscriptions/24ba3e4c-45e3-4d55-8132-6731cf25547f/resourceGroups/GREG/providers/Microsoft.Compute/disks/Disk2",
                "storageAccountType": "Standard_LRS"
            },
            "caching": "None",
            "toBeDetached": false,
            "lun": 1
        }
    ]), "world", dynamic([
        {
            "name": "Data3",
            "createOption": "Attach",
            "diskSizeGB": 10,
            "managedDisk": {
                "id": "/subscriptions/24ba3e4c-45e3-4d55-8132-6731cf25547f/resourceGroups/GREG/providers/Microsoft.Compute/disks/Data",
                "storageAccountType": "Standard_LRS"
            },
            "caching": "None",
            "toBeDetached": false,
            "lun": 0
        },
        {
            "name": "Disk23",
            "createOption": "Attach",
            "diskSizeGB": 10,
            "managedDisk": {
                "id": "/subscriptions/24ba3e4c-45e3-4d55-8132-6731cf25547f/resourceGroups/GREG/providers/Microsoft.Compute/disks/Disk2",
                "storageAccountType": "Standard_LRS"
            },
            "caching": "None",
            "toBeDetached": false,
            "lun": 1
        }
    ])
    ]
    // --> answer starts here <--
    | extend r = rand() // *
    | mv-apply d on (   
        project d = pack("name", d.name, "storageAccountType", d.managedDisk.storageAccountType)
    )
    | summarize d = make_list(d) by r, some_value // *
    | project-away r // *
    
    推荐文章