Compartilhar via


Tutorial: aprender operadores comuns

O Kusto Query Language (KQL) é usado para escrever consultas no Azure Data Explorer, no Azure Monitor Log Analytics, no Azure Sentinel e muito mais. Este tutorial é uma introdução aos operadores KQL essenciais usados para acessar e analisar seus dados.

Para obter orientações mais específicas sobre como consultar logs no Azure Monitor, consulte Introdução às consultas de log.

Observação

Não encontrou o que você está procurando? Este artigo foi recentemente dividido, da seguinte forma:

Neste tutorial, você aprenderá como:

Os exemplos neste tutorial usam a StormEvents tabela, que está disponível publicamente no cluster de ajuda. Para explorar com seus próprios dados, crie seu próprio cluster gratuito.

Pré-requisitos

  • Uma conta da Microsoft ou uma identidade de usuário do Microsoft Entra para entrar no cluster de ajuda

Contar linhas

Comece usando o operador de contagem para localizar o número de registros de tempestade na StormEvents tabela.

StormEvents 
| count

Saída

Count
59066

Veja uma amostra de dados

Para ter uma noção dos dados, use o operador take para exibir uma amostra de registros. Esse operador retorna um número especificado de linhas arbitrárias da tabela, que pode ser útil para visualizar a estrutura de dados e o conteúdo gerais.

StormEvents 
| take 5

A tabela a seguir mostra apenas 5 das 22 colunas retornadas. Para ver a saída completa, execute a consulta.

StartTime EndTime EpisodeId EventId Estado EventType ...
2007-09-20T21:57:00Z 2007-09-20T22:05:00Z 11078 60913 FLÓRIDA Tornado ...
2007-12-20T07:50:00Z 2007-12-20T07:53:00Z 12554 68796 MISSISSIPI Thunderstorm Wind ...
30T16:00:00Z 2007-12-30Z 2007-12-30T16:05:00Z 11749 64588 GEÓRGIA Thunderstorm Wind ...
2007-09-29T08:11:00Z 2007-09-29T08:11:00Z 11091 61032 ATLÂNTICO SUL Tromba de água ...
2007-09-18T20:00:00Z 2007-09-19T18:00:00Z 11074 60904 FLÓRIDA Chuva Forte ...

Selecionar um subconjunto de colunas

Use o operador de projeto para simplificar a exibição e selecionar um subconjunto específico de colunas. O uso project geralmente é mais eficiente e fácil de ler do que visualizar todas as colunas.

StormEvents
| take 5
| project State, EventType, DamageProperty

Saída

Estado EventType DamageProperty
ATLÂNTICO SUL Tromba de água 0
FLÓRIDA Chuva Forte 0
FLÓRIDA Tornado 6200000
GEÓRGIA Thunderstorm Wind 2000
MISSISSIPI Thunderstorm Wind 20000

Listar valores exclusivos

Parece que há vários tipos de tempestades com base nos resultados da consulta anterior. Use o operador distinto para listar todos os tipos de tempestade exclusivos.

StormEvents 
| distinct EventType

Há 46 tipos de tempestades na tabela. Aqui está uma amostra de 10 deles.

EventType
Thunderstorm Wind
Granizo
Saturação de Flash
Seca
Clima de Inverno
Tempestade de Inverno
Neve Pesada
Vento Forte
Geada/Frio
Saturação
...

Filtrar por condição

O operador where filtra linhas de dados com base em determinados critérios.

A consulta a seguir procura eventos de tempestade em um específico State de um EventTypearquivo .

StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| project StartTime, EndTime, State, EventType, DamageProperty

São 146 eventos que correspondem a essas condições. Aqui está uma amostra de 5 deles.

StartTime EndTime Estado EventType DamageProperty
2007-01-13T08:45:00Z 2007-01-13T10:30:00Z TEXAS Saturação 0
2007-01-13T09:30:00Z 2007-01-13T21:00:00Z TEXAS Saturação 0
2007-01-13T09:30:00Z 2007-01-13T21:00:00Z TEXAS Saturação 0
2007-01-15T22:00:00Z 2007-01-16T22:00:00Z TEXAS Saturação 20000
2007-03-12T02:30:00Z 2007-03-12T06:45:00Z TEXAS Saturação 0
... ... ... ... ...

Classificar resultados

Para exibir as principais inundações no Texas que causaram mais danos, use o operador de classificação para organizar as linhas em ordem decrescente com base na DamageProperty coluna. A ordem de classificação padrão é decrescente. Para classificar em ordem crescente, especifique asc.

StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| sort by DamageProperty
| project StartTime, EndTime, State, EventType, DamageProperty

Saída

StartTime EndTime Estado EventType DamageProperty
2007-08-18T21:30:00Z 2007-08-19T23:00:00Z TEXAS Saturação 5000000
2007-06-27T00:00:00Z 2007-06-27T12:00:00Z TEXAS Saturação 1200000
2007-06-28T18:00:00Z 2007-06-28T23:00:00Z TEXAS Saturação 1.000.000
2007-06-27T00:00:00Z 2007-06-27T08:00:00Z TEXAS Saturação 750000
2007-06-26T20:00:00Z 2007-06-26T23:00:00Z TEXAS Saturação 750000
... ... ... ... ...

Obter as n primeiras linhas

O operador top retorna as primeiras n linhas classificadas pela coluna especificada.

A consulta a seguir retorna as cinco inundações do Texas que causaram a propriedade mais danificada.

StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| top 5 by DamageProperty
| project StartTime, EndTime, State, EventType, DamageProperty

Saída

StartTime EndTime Estado EventType DamageProperty
2007-08-18T21:30:00Z 2007-08-19T23:00:00Z TEXAS Saturação 5000000
2007-06-27T00:00:00Z 2007-06-27T12:00:00Z TEXAS Saturação 1200000
2007-06-28T18:00:00Z 2007-06-28T23:00:00Z TEXAS Saturação 1.000.000
2007-06-27T00:00:00Z 2007-06-27T08:00:00Z TEXAS Saturação 750000
2007-06-26T20:00:00Z 2007-06-26T23:00:00Z TEXAS Saturação 750000

Observação

A ordem dos operadores é importante. Se você colocar top antes where aqui, você terá resultados diferentes. Isso ocorre porque os dados são transformados por cada operador em ordem. Para saber mais, consulte Instruções de expressão tabular.

Criar colunas calculadas

Os operadores project e extend podem criar colunas calculadas.

Use project para especificar apenas as colunas que você deseja exibir e use extend para acrescentar a coluna calculada ao final da tabela.

A consulta a seguir cria uma coluna calculada Duration com a diferença entre o StartTime e EndTime. Como queremos visualizar apenas algumas colunas selecionadas, usar project é a melhor escolha neste caso.

StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| top 5 by DamageProperty desc
| project StartTime, EndTime, Duration = EndTime - StartTime, DamageProperty

Saída

StartTime EndTime Duration DamageProperty
2007-08-18T21:30:00Z 2007-08-19T23:00:00Z 1.01:30:00 5000000
2007-06-27T00:00:00Z 2007-06-27T12:00:00Z 12:00:00 1200000
2007-06-28T18:00:00Z 2007-06-28T23:00:00Z 05:00:00 1.000.000
2007-06-27T00:00:00Z 2007-06-27T08:00:00Z 08:00:00 750000
2007-06-26T20:00:00Z 2007-06-26T23:00:00Z 03:00:00 750000

Se você der uma olhada na coluna calculada Duration , poderá notar que a inundação que causou mais danos também foi a mais longa.

Use extend para exibir a coluna calculada Duration junto com todas as outras colunas. A Duration coluna é adicionada como a última coluna.

StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| top 5 by DamageProperty desc
| extend Duration = EndTime - StartTime

Saída

StartTime EndTime ... Duration
2007-08-18T21:30:00Z 2007-08-19T23:00:00Z ... 1.01:30:00
2007-06-27T00:00:00Z 2007-06-27T12:00:00Z ... 12:00:00
2007-06-28T18:00:00Z 2007-06-28T23:00:00Z ... 05:00:00
2007-06-27T00:00:00Z 2007-06-27T08:00:00Z ... 08:00:00
2007-06-26T20:00:00Z 2007-06-26T23:00:00Z ... 03:00:00

Mapear valores de um conjunto para o outro

O mapeamento estático é uma técnica útil para alterar a apresentação de seus resultados. No KQL, uma maneira de executar o mapeamento estático é usando um dicionário dinâmico e acessadores para mapear valores de um conjunto para outro.

let sourceMapping = dynamic(
  {
    "Emergency Manager" : "Public",
    "Utility Company" : "Private"
  });
StormEvents
| where Source == "Emergency Manager" or Source == "Utility Company"
| project EventId, Source, FriendlyName = sourceMapping[Source]

Saída

EventId Origem FriendlyName
68796 Gerenciador de emergência Setor Público
... ... ...
72609 Concessionária Privados
... ... ...

Próxima etapa

Agora que você está familiarizado com os fundamentos de escrever consultas Kusto, vá para o próximo tutorial e aprenda a usar funções de agregação para obter informações mais profundas sobre seus dados.