Dela via


bag_pack()

Gäller för: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel

Skapar ett dynamiskt egenskapsobjekt från en lista med nycklar och värden.

Inaktuella alias: pack(), pack_dictionary()

Syntax

bag_pack( key1,value1,key2,value2,... )

Läs mer om syntaxkonventioner.

Parameterar

Namn Typ Krävs Description
nyckel string ✔️ Nyckelnamnet.
value alla skalära datatyper ✔️ Nyckelvärdet.

Anmärkning

Nyckel- och värdesträngarna är en alternerande lista som listans totala längd måste vara jämn.

Retur

Returnerar ett dynamic egenskapspåseobjekt från indata för den angivna nyckeln och värdet .

Examples

Exempel 1

I följande exempel skapas och returneras en egenskapspåse från en alternerande lista med nycklar och värden.

print bag_pack("Level", "Information", "ProcessID", 1234, "Data", bag_pack("url", "www.bing.com"))

Results

print_0
{"Level": "Information", "ProcessID": 1234, "Data": {"url":"www.bing.com"}}

Exempel 2

I följande exempel skapas en egenskapspåse och ett extraheringsvärde från egenskapspåsen med operatorn ..

datatable (
    Source: int,
    Destination: int,
    Message: string
) [
    1234, 100, "Hi", 
    4567, 200, "Hello",
    1212, 300, "Hey" 
]
| extend MyBag=bag_pack("Dest", Destination, "Text", Message)
| project-away Source, Destination, Message
| extend MyBag_Dest=MyBag.Dest, MyBag_Text=MyBag.Text

Results

MyBag MyBag_Dest MyBag_Text
{"Dest":100,"Text":"Hi" } 100 Hej
{"Dest":200,"Text":"Hello" } 200 Hej
{"Dest":300,"Text":"Hey" } 300 Hallå

exempel 3

I följande exempel används två tabeller, SmsMessages och MmsMessages, och deras gemensamma kolumner och en egenskapsuppsättning från de andra kolumnerna returneras. Tabellerna skapas ad hoc som en del av frågan.

SmsMessages

SourceNumber TargetNumber CharsCount
555-555-1234 555-555-1212 46
555-555-1234 555-555-1213 50
555-555-1212 555-555-1234 32

MmsMessages

SourceNumber TargetNumber Filstorlek FileType filnamn
555-555-1212 555-555-1213 200 JPEG Bild 1
555-555-1234 555-555-1212 250 JPEG Bild 2
555-555-1234 555-555-1213 300 png Bild 3
let SmsMessages = datatable (
    SourceNumber: string,
    TargetNumber: string,
    CharsCount: string
) [
    "555-555-1234", "555-555-1212", "46", 
    "555-555-1234", "555-555-1213", "50",
    "555-555-1212", "555-555-1234", "32" 
];
let MmsMessages = datatable (
    SourceNumber: string,
    TargetNumber: string,
    FileSize: string,
    FileName: string
) [
    "555-555-1212", "555-555-1213", "200", "Pic1",
    "555-555-1234", "555-555-1212", "250", "Pic2",
    "555-555-1234", "555-555-1213", "300", "Pic3"
];
SmsMessages 
| join kind=inner MmsMessages on SourceNumber
| extend Packed=bag_pack("CharsCount", CharsCount, "FileSize", FileSize, "FileName", FileName) 
| where SourceNumber == "555-555-1234"
| project SourceNumber, TargetNumber, Packed

Results

SourceNumber TargetNumber Packed
555-555-1234 555-555-1213 {"CharsCount":"50","FileSize":"250","FileName":"Pic2"}
555-555-1234 555-555-1212 {"CharsCount":"46","FileSize":"250","FileName":"Pic2"}
555-555-1234 555-555-1213 {"CharsCount":"50","FileSize":"300","FileName":"Pic3"}
555-555-1234 555-555-1212 {"CharsCount":"46","FileSize":"300","FileName":"Pic3"}