Tutorial: aprender operadores comuns
Aplica-se a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
A KQL (Linguagem de Consulta Kusto) é usada para escrever consultas no Azure Data Explorer, no Log Analytics do Azure Monitor, no Azure Sentinel e muito mais. Este tutorial é uma introdução aos operadores KQL essenciais usados para acessar e analisar seus dados.
Para obter diretrizes 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:
- Conheça os operadores comuns (este artigo)
- Usar funções de agregação
- Unir dados de várias tabelas
- Criar visualizações geoespaciais
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.
Os exemplos neste tutorial usam a StormEvents
tabela, que está disponível publicamente nos dados de exemplo da análise meteorológica.
Pré-requisitos
Para executar as consultas a seguir, você precisa de um ambiente de consulta com acesso aos dados de exemplo. Você pode usar um dos itens a seguir:
- Uma conta da Microsoft ou identidade de usuário do Microsoft Entra para entrar no cluster de ajuda
- Uma conta da Microsoft ou identidade de usuário do Microsoft Entra
- Um espaço de trabalho do Fabric com uma capacidade habilitada para o Microsoft Fabric
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, o que pode ser útil para visualizar a estrutura geral de dados e o conteúdo.
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 | 12,554 | 68796 | MISSISSIPI | Thunderstorm Wind | ... |
2007-12-30T16:00:00Z | 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 exibir 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 existem vários tipos de tempestades com base nos resultados da consulta anterior. Use o operador distinct para listar todos os tipos de tempestade exclusivos.
StormEvents
| distinct EventType
Existem 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 .EventType
StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| project StartTime, EndTime, State, EventType, DamageProperty
Existem 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 fazer a classificação em ordem ascendente, 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, obterá 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 e EndTime
.StartTime
Como queremos exibir apenas algumas colunas selecionadas, usar project
é a melhor opção 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 computada Duration
, poderá notar que a inundação que causou mais danos também foi a inundação 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 | Empresa de serviços públicos | Privados |
... | ... | ... |
Próxima etapa
Agora que você está familiarizado com os fundamentos da escrita de consultas Kusto, vá para o próximo tutorial e aprenda a usar funções de agregação para obter insights mais profundos sobre seus dados.