Поделиться через


make_bag_if() (функция агрегирования)

Область применения: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

dynamic Создает контейнер свойств JSON (словарь) значений expr в записях, для которых вычисляется trueпредикат.

Значения NULL игнорируются и не учитываются в вычислении.

Примечание.

Эта функция используется в сочетании с оператором сводки.

Синтаксис

make_bag_if(предикат expr, [, maxSize])

Дополнительные сведения о соглашениях синтаксиса.

Параметры

Имя (название) Type Обязательно Описание
expr dynamic ✔️ Выражение, используемое для вычисления агрегирования.
predicate bool ✔️ Предикат, который вычисляет true, чтобы экспр был добавлен в результат.
maxSize int Ограничение на максимальное количество возвращаемых элементов. Значение по умолчанию и максимальное значение — 1048576.

Возвраты

dynamic Возвращает контейнер свойств JSON (словарь) значений expr в записях, для которых вычисляется trueпредикат. Значения, отличные от словаря, будут пропущены. Если ключ отображается в нескольких строках, будет выбрано произвольное значение из возможных значений этого ключа.

Примечание.

Эта функция без предиката аналогична make_bag.

Пример

В следующем примере показан упакованный контейнер свойств 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)

Выходные данные

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

Используйте подключаемый модуль bag_unpack() для преобразования ключей пакета в выходные данные make_bag_if() в столбцы.

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)

Выходные данные

prop01 prop03
val_a val_c