Sdílet prostřednictvím


make_bag_if() (agregační funkce)

Platí pro: ✅Microsoft FabricAzure Data Explorer✅Azure MonitorMicrosoft Sentinel

Vytvoří tašku dynamic vlastností JSON (slovník) hodnot výrazů v záznamech, pro které se predikát vyhodnotí jako true.

Hodnoty Null se ignorují a nefaktorují do výpočtu.

Poznámka:

Tato funkce se používá ve spojení s operátorem sumarizace.

Syntaxe

make_bag_if(, predikát výrazu [, maxSize])

Přečtěte si další informace o konvencích syntaxe.

Parametry

Název Type Požadováno Popis
výraz dynamic ✔️ Výraz použitý pro výpočet agregace.
predikát bool ✔️ Predikát, který se vyhodnotí jako truevýraz , aby se výraz přidal do výsledku.
maxSize int Limit maximálního počtu vrácených prvků. Výchozí a maximální hodnota je 1048576.

Návraty

Vrátí tašku dynamic vlastností JSON (slovník) hodnot výrazů v záznamech, pro které se predikát vyhodnotí jako true. Hodnoty, které nejsou slovníky, se přeskočí. Pokud se klíč zobrazí ve více než jednom řádku, vybere se libovolná hodnota z možných hodnot tohoto klíče.

Poznámka:

Tato funkce bez predikátu je podobná make_bag.

Příklad

Následující příklad ukazuje zabalenou tašku vlastností JSON.

let T = datatable(prop:string, value:string, predicate:bool)
[
    "prop01", "val_a", true,
    "prop02", "val_b", false,
    "prop03", "val_c", true
];
T
| extend p = bag_pack(prop, value)
| summarize dict=make_bag_if(p, predicate)

Výstup

Dict
{ "prop01": "val_a", "prop03": "val_c" }

K transformaci klíčů tašky ve výstupu make_bag_if() do sloupců použijte modul plug-in bag_unpack().

let T = datatable(prop:string, value:string, predicate:bool)
[
    "prop01", "val_a", true,
    "prop02", "val_b", false,
    "prop03", "val_c", true
];
T
| extend p = bag_pack(prop, value)
| summarize bag=make_bag_if(p, predicate)
| evaluate bag_unpack(bag)

Výstup

prop01 prop03
val_a val_c