GitHubContribuir no GitHub: Editar on-line

operador de resumo

Sintaxe

T | summarize [SummarizeParameters] [[ Column =] Agregação [, ...]] [ by [ Column =] GroupExpression [, ...]]

Argumentos

  • Coluna: Nome opcional para uma coluna de resultados. Padronizado para um nome derivado da expressão
  • Agregação: Uma chamada para uma função de agregação como count() ou avg(), com nomes de colunas como argumentos. Consulte a lista de funções de agregação.
  • GroupExpression: uma expressão escalar que pode fazer referência aos dados de entrada. A saída terá tantos registros quantos houver valores distintos de todas as expressões de grupo
  • SummarizeParameters: Zero ou mais parâmetros (separados por espaço) no formato de Nome = Valor que controlam o comportamento.. Os seguintes parâmetros são suportados:

Nota

Quando a tabela de entrada está vazia, a saída depende se GroupExpression é usado:

  • Se o GroupExpression não for fornecido, a saída será uma única linha (vazia).
  • Se GroupExpression for fornecido, a saída não terá linhas.

Devoluções

As linhas de entrada são organizadas em grupos que possuem os mesmos valores das expressões by Em seguida, as funções de agregação especificadas são calculadas sobre cada grupo, produzindo uma linha para cada grupo.. O resultado contém as colunas by e também pelo menos uma coluna para cada agregado calculado. (Algumas funções de agregação retornam várias colunas)..

O resultado tem tantas linhas quantas combinações distintas de valores by (que podem ser zero). Se não houver nenhuma chave de grupo fornecida, o resultado terá um único registro.

Para resumir sobre intervalos de valores numéricos, use bin() para reduzir intervalos para valores distintos.

Nota

  • Embora seja possível fornecer expressões arbitrárias para as expressões de agregação e agrupamento, é mais eficiente usar nomes de colunas simples ou aplicar bin() a uma coluna numérica.

Lista de funções de agregação

Função Descrição
arg_max () Retorna uma ou mais expressões quando o argumento é maximizado
arg_min () Retorna uma ou mais expressões quando o argumento é minimizado
avg () Retorna um valor médio no grupo
avgif () Retorna um valor médio no grupo (com predicado)
binary_all_and Retorna o valor agregado usando o binário AND do grupo
binary_all_or Retorna o valor agregado usando o binário OR do grupo
binary_all_xor Retorna o valor agregado usando o binário XOR do grupo
COUNT() Retorna uma contagem do grupo
countif () Retorna uma contagem com o predicado do grupo
dcount () Retorna uma contagem aproximada distinta dos elementos do grupo
dcountif () Retorna uma contagem aproximada distinta dos elementos do grupo (com predicado)
make_list () Retorna uma lista de todos os valores dentro do grupo
make_list_if () Retorna uma lista de todos os valores dentro do grupo (com predicado)
make_set () Retorna um conjunto de valores distintos dentro do grupo
make_set_if () Retorna um conjunto de valores distintos dentro do grupo (com predicado)
max () Retorna o valor máximo no grupo
maxif () Retorna o valor máximo no grupo (com predicado)
min () Retorna o valor mínimo no grupo
minif () Retorna o valor mínimo no grupo (com predicado)
sum () Retorna a soma dos elementos dentro do grupo
sumif () Retorna a soma dos elementos dentro do grupo (com predicado)
take_any () Retorna um valor aleatório não vazio para o grupo
take_anyif () Retorna um valor aleatório não vazio para o grupo (com predicado)

Agrega valores padrão

A tabela a seguir resume os valores padrão de agregações:

Operador Valor Padrão
count(), countif(), dcount(), dcountif() 0
make_bag(), make_bag_if(), make_list(), make_list_if(), make_set(), make_set_if() matriz dinâmica vazia ([])
Todos os outros nulo

Ao usar esses agregados sobre entidades que incluem valores nulos, os valores nulos serão ignorados e não participarão do cálculo (veja exemplos abaixo).

Exemplos

Este exemplo simplesmente conta todos os eventos na tabela events

events
    | project original_time
    | where original_time > ago(24h)
    | summarize NumEvents=count()

Resultados

NumEvents
4163038

Próximo Exemplo

Este exemplo retorna a contagem total de eventos para as últimas 24 horas, categorizados em períodos de 24hr

events
    | project original_time
    | where original_time > ago(24h)
    | summarize NumEvents=count() by HourBucket=bin(original_time, 60m)
    | sort by HourBucket desc
    | take 5

Resultados

HourBucket NumEvents
2022-06-12 23:00:00.000 8374746
2022-06-12 22:00:00.000 8214746
2022-06-12 21:00:00.000 7374746
2022-06-12 20:00:00.000 9938733
2022-06-12 19:00:00.000 0
2022-06-12 18:00:00.000 1

Uma tabela que mostra quantos eventos foram alimentados em cada intervalo de uma hora nas últimas 24 horas. A tabela conterá duas colunas, EventCount que é a contagem dos eventos para a hora e HourBucket é categorizado espaço de tempo de agregação para os eventos.

Combinação única

Determine quais combinações exclusivas de eventos name e severity existem em uma tabela Não há funções de agregação, apenas chaves de grupo. A saída apenas mostrará as colunas para esses resultados:

events 
    | project severity, name, original_time
    | where original_time > ago(24h)
    | where severity > 6
    | summarize by name, severity
    | sort by name asc, severity desc
    | take 5

Resultados

name severity
(Primary) Failover cable OK 10
(Primary) Failover cable Not OK 6
(Primary) Failover message block alloc failed 7
30419 Internet Explorer 8 XSS Attack 8
A fatal alert was generated and sent to the remote endpoint 7

Registro de data e hora mínimo e máximo

Localiza o registro de data e hora mínimo e máximo de todos os eventos na tabela events Não há nenhuma cláusula group-by, portanto, há apenas uma linha na saída:

events 
    | project severity, original_time
    | where original_time > ago(24h)
    | where severity > 6
    | summarize MinTime=min(original_time), MaxTime=max(original_time)

Resultados

Min Max
1975-06-09 09:21:45 2015-12-24 23:45:00

Contagem Distinta

Crie uma linha para cada name, mostrando uma contagem de src_ip distintos os eventos alimentado

events 
    | project name, severity, original_time, src_ip
    | where original_time > ago(24h)
    | where severity > 6 and isnotempty(name) and isnotempty(src_ip)
    | summarize SrcIpCount=count_distinct(src_ip) by Name=name
    | order by SrcIpCount desc
    | take 5

Resultados

Nome Contagem de SrcIp
O processamento da Política de Grupo falhou 385
Violação de Proteção de Conteúdo. 367
Violação de Execução do Servidor da Web 312
Bypass de autenticação do servidor Openfire Jabber 305
Negar verificação de caminho reverso do protocolo 290