Кусто - вложенная группировка - PullRequest
0 голосов
/ 25 февраля 2020

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

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

Объект 1

⮡ ClientAppUsed: Browser

⮡ AppDisplayName: Azure AD

Объект 2

⮡ ClientAppUsed: Browser

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

Объект 3

⮡ ClientAppUsed: POP

⮡ AppDisplayName: Microsoft Exchange Online

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

Групповой браузер

⮡ AppDisplayName: Azure AD

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

⮡ AppDisplayName: приложение Office Client

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

Группа POP

⮡ AppDisplayName: Microsoft Exchange Online

⮡ Подсчет Microsoft Exchange Online

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

SignInLogs | summerize count() by ClientAppUsed, AppDisplayName

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

Ответы [ 2 ]

0 голосов
/ 02 марта 2020

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

SignInLogs 
| summarize count() by ClientAppUsed, AppDisplayName
| summarize makelist(pack("AppDisplayName", AppDisplayName, "Count", count_)) by ClientAppUsed
0 голосов
/ 25 февраля 2020

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

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
...