Кусто - вложенная группировка

Я пытаюсь получить, подсчитать и сгруппировать данные из журналов входа в Azure AD в Log Analytics.

Indata содержит множество свойств, но меня интересуют ClientAppUsed и AppDisplayname. Indata выглядит так:

Объект 1

⮡ ClientAppUsed: браузер

⮡ AppDisplayName: Azure AD

Объект 2

⮡ ClientAppUsed: браузер

⮡ AppDisplayName: клиентское приложение Office

Объект 3

⮡ ClientAppUsed: POP

⮡ AppDisplayName: Microsoft Exchange Online

Я хочу сгруппировать типы ClientAppUsed вместе и подсчитать каждое появление AppDisplayName под ними. Нравится:

Браузер группы

⮡ AppDisplayName: Azure AD

⮡ Количество Azure AD

⮡ AppDisplayName: клиентское приложение Office

⮡ Количество клиентских приложений Office

Группа POP

⮡ AppDisplayName: Microsoft Exchange Online

⮡ Количество Microsoft Exchange Online

Что мне удалось сделать, так это подсчитать его с помощью следующего запроса, но я хочу, чтобы они были сгруппированы вместе, а не отображали каждое появление AppDisplayName в виде одной строки:

SignInLogs | summerize count() by ClientAppUsed, AppDisplayName

Любая помощь приветствуется!


person jobbin    schedule 25.02.2020    source источник


Ответы (2)


не совсем понятно, какая схема вывода вас интересует, но вот несколько альтернатив, которые вы можете попробовать (или обновите свой вопрос, добавив более четкое описание ожидаемой схемы вывода и содержимого)

1)

datatable(ClientAppUsed:string, AppDisplayName:string)
[
    'Browser', 'Azure AD',
    'Browser', 'Office Client App',
    'POP', 'Microsoft Exchange Online',
]
| summarize count() by ClientAppUsed, AppDisplayName
| summarize make_bag(pack(AppDisplayName, count_)) by ClientAppUsed

2)

datatable(ClientAppUsed:string, AppDisplayName:string)
[
    'Browser', 'Azure AD',
    'Browser', 'Office Client App',
    'POP', 'Microsoft Exchange Online',
]
| summarize count() by ClientAppUsed, AppDisplayName
| summarize make_list(pack("AppDisplayName", AppDisplayName, "Count", count_)) by ClientAppUsed
person Yoni    schedule 25.02.2020

Это то, что я искал, как предложил Йони Л.

SignInLogs 
| summarize count() by ClientAppUsed, AppDisplayName
| summarize makelist(pack("AppDisplayName", AppDisplayName, "Count", count_)) by ClientAppUsed
person jobbin    schedule 02.03.2020