Tutorial: Aprender operadores comuns
Linguagem de Pesquisa Kusto (KQL) é utilizado 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 utilizados para aceder e analisar os seus dados.
Para obter orientações mais específicas sobre como consultar registos no Azure Monitor, veja Introdução às consultas de registo.
Nota
Não consegue encontrar o que procura? Este artigo foi recentemente dividido, da seguinte forma:
- Aprender operadores comuns (este artigo)
- Utilizar funções de agregação
- Associar dados de várias tabelas
- Criar visualizações geoespaciais
Neste tutorial, irá aprender a:
Os exemplos neste tutorial utilizam a StormEvents
tabela, que está publicamente disponível no cluster de ajuda. Para explorar com os seus próprios dados, crie o seu próprio cluster gratuito.
Pré-requisitos
- Uma conta Microsoft ou Microsoft Entra identidade de utilizador para iniciar sessão no cluster de ajuda
Contar linhas
Comece por utilizar o operador de contagem para encontrar o número de registos storm na StormEvents
tabela.
StormEvents
| count
Saída
de palavras |
---|
59066 |
Ver um exemplo de dados
Para obter uma noção dos dados, utilize o operador take para ver uma amostra de registos. Este operador devolve um número especificado de linhas arbitrárias da tabela, o que pode ser útil para pré-visualizar o conteúdo e a estrutura de dados gerais.
StormEvents
| take 5
A tabela seguinte mostra apenas 6 das 22 colunas devolvidas. 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 | FLORIDA | Tornado | ... |
2007-12-20T07:50:00Z | 2007-12-20T07:53:00Z | 12554 | 68796 | MISSISSIPPI | Vento trovoada | ... |
2007-12-30T16:00:00Z | 2007-12-30T16:05:00Z | 11749 | 64588 | GEÓRGIA | Vento trovoada | ... |
2007-09-29T08:11:00Z | 2007-09-29T08:11:00Z | 11091 | 61032 | SUL DO ATLÂNTICO | Waterspout | ... |
2007-09-18T20:00:00Z | 09-2007-19T18:00:00Z | 11074 | 60904 | FLORIDA | Chuva Intensa | ... |
Selecionar um subconjunto de colunas
Utilize o operador de projeto para simplificar a vista e selecionar um subconjunto específico de colunas. A utilização project
é, muitas vezes, mais eficiente e fácil de ler do que ver todas as colunas.
StormEvents
| take 5
| project State, EventType, DamageProperty
Saída
Estado | EventType | DamageProperty |
---|---|---|
SUL DO ATLÂNTICO | Waterspout | 0 |
FLORIDA | Chuva Intensa | 0 |
FLORIDA | Tornado | 6200000 |
GEÓRGIA | Vento trovoada | 2000 |
MISSISSIPPI | Vento trovoada | 20 000 |
Listar valores exclusivos
Parece que existem vários tipos de tempestades com base nos resultados da consulta anterior. Utilize o operador distinto para listar todos os tipos de storm exclusivos.
StormEvents
| distinct EventType
Há 46 tipos de tempestades na mesa. Eis uma amostra de 10.
EventType |
---|
Vento trovoada |
Granizo |
Inundação Repentina |
Seca |
Tempo de Inverno |
Tempestade de Inverno |
Neve Pesada |
Vento Forte |
Geada/Fixar |
Inundação |
... |
Filtrar por condição
O operador where filtra linhas de dados com base em determinados critérios.
A seguinte consulta procura eventos storm numa específica State
de um específico EventType
.
StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| project StartTime, EndTime, State, EventType, DamageProperty
Existem 146 eventos que correspondem a estas condições. Aqui está uma amostra de 5 deles.
StartTime | EndTime | Estado | EventType | DamageProperty |
---|---|---|---|---|
2007-01-13T08:45:00Z | 01-2007-13T10:30:00Z | TEXAS | Inundação | 0 |
2007-01-13T09:30:00Z | 2007-01-13T21:00:00Z | TEXAS | Inundação | 0 |
2007-01-13T09:30:00Z | 2007-01-13T21:00:00Z | TEXAS | Inundação | 0 |
2007-01-15T22:00:00Z | 01-2007-16T22:00:00Z | TEXAS | Inundação | 20 000 |
2007-03-12T02:30:00Z | 2007-03-12T06:45:00Z | TEXAS | Inundação | 0 |
... | ... | ... | ... | ... |
Ordenar os resultados
Para ver as principais inundações no Texas que causaram mais danos, utilize o operador de ordenação para organizar as linhas por ordem descendente com base na DamageProperty
coluna. A sequência de ordenação predefinida é descendente. Para ordenar por 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 |
---|---|---|---|---|
08-2007-18T21:30:00Z | 08-2007-19T23:00:00Z | TEXAS | Inundação | 5000000 |
2007-06-27T00:00:00Z | 2007-06-27T12:00:00Z | TEXAS | Inundação | 1200000 |
2007-06-28T18:00:00Z | 2007-06-28T23:00:00Z | TEXAS | Inundação | 1000000 |
2007-06-27T00:00:00Z | 2007-06-27T08:00:00Z | TEXAS | Inundação | 750000 |
2007-06-26T20:00:00Z | 2007-06-26T23:00:00Z | TEXAS | Inundação | 750000 |
... | ... | ... | ... | ... |
Obter as primeiras n linhas
O operador superior devolve as primeiras n linhas ordenadas pela coluna especificada.
A seguinte consulta devolve 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 |
---|---|---|---|---|
08-2007-18T21:30:00Z | 08-2007-19T23:00:00Z | TEXAS | Inundação | 5000000 |
2007-06-27T00:00:00Z | 2007-06-27T12:00:00Z | TEXAS | Inundação | 1200000 |
2007-06-28T18:00:00Z | 2007-06-28T23:00:00Z | TEXAS | Inundação | 1000000 |
2007-06-27T00:00:00Z | 2007-06-27T08:00:00Z | TEXAS | Inundação | 750000 |
2007-06-26T20:00:00Z | 2007-06-26T23:00:00Z | TEXAS | Inundação | 750000 |
Nota
A ordem dos operadores é importante. Se colocar top
antes where
aqui, obterá resultados diferentes. Isto deve-se ao facto de os dados terem sido transformados por cada operador por ordem. Para saber mais, veja instruções de expressão tabular.
Criar colunas calculadas
Os operadores de projeto e expansão podem criar colunas calculadas.
Utilize project
para especificar apenas as colunas que pretende ver e utilize extend
para acrescentar a coluna calculada ao final da tabela.
A consulta seguinte cria uma coluna calculada Duration
com a diferença entre e StartTime
EndTime
. Uma vez que só queremos ver algumas colunas selecionadas, utilizar 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 | Duração | DamageProperty |
---|---|---|---|
08-2007-18T21:30:00Z | 08-2007-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 | 1000000 |
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 observar a coluna calculada Duration
, poderá reparar que a inundação que causou mais danos foi também a inundação mais longa.
Utilize extend
para ver a coluna calculada Duration
juntamente 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 | ... | Duração |
---|---|---|---|
08-2007-18T21:30:00Z | 08-2007-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 outro
O mapeamento estático é uma técnica útil para alterar a apresentação dos seus resultados. No KQL, uma forma de executar o mapeamento estático é ao utilizar um dicionário dinâmico e acessórios 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 | Gestor de Emergência | Público |
... | ... | ... |
72609 | Empresa de Serviços Públicos | Privado |
... | ... | ... |
Passo seguinte
Agora que está familiarizado com o essencial da escrita de consultas kusto, avance para o próximo tutorial e saiba como utilizar funções de agregação para obter informações mais aprofundadas sobre os seus dados.
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários