Compartilhar via


make_bag_if() (função de agregação)

Aplica-se a: ✅Microsoft FabricAzure Data Explorer✅Azure MonitorMicrosoft Sentinel

Cria um dynamic recipiente de propriedades JSON (dicionário) de valores expr em registros para os quais o predicado é avaliado como true.

Os valores nulos são ignorados e não são considerados no cálculo.

Observação

Essa função é usada em conjunto com o operador summarize.

Sintaxe

make_bag_if(expr, predicado [, maxSize])

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Digitar Obrigatória Descrição
expr dynamic ✔️ A expressão usada para o cálculo de agregação.
predicate bool ✔️ O predicado que é avaliado como true, para que expr seja adicionado ao resultado.
maxSize int O limite do número máximo de elementos retornados. O valor padrão e máximo é 1048576.

Devoluções

Retorna um dynamic recipiente de propriedades JSON (dicionário) de valores expr em registros para os quais o predicado é avaliado como true. Os valores que não são de dicionário serão ignorados. Se uma chave aparecer em mais de uma linha, um valor arbitrário, entre os valores possíveis para essa chave, será selecionado.

Observação

Essa função sem o predicado é semelhante a make_bag.

Exemplo

O exemplo a seguir mostra um recipiente de propriedades JSON empacotado.

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)

Saída

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

Use o plugin bag_unpack() para transformar as chaves do saco na saída make_bag_if() em colunas.

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)

Saída

Prop01 Prop03
val_a val_c