Tutorial: Información sobre operadores comunes
Lenguaje de consulta Kusto (KQL) se usa para escribir consultas en Azure Data Explorer, Azure Monitor Log Analytics, Azure Sentinel, etc. Este tutorial es una introducción a los operadores de KQL esenciales que se usan para acceder a los datos y analizarlos.
Para obtener instrucciones más específicas sobre cómo consultar registros en Azure Monitor, consulte Introducción a las consultas de registro.
Nota
¿No encuentra lo que busca? Este artículo se ha dividido recientemente, como se indica a continuación:
- Obtenga información sobre los operadores comunes (en este artículo)
- Uso de funciones de agregación
- Combinar datos de varias tablas.
- Creación de visualizaciones geoespaciales
En este tutorial, aprenderá a:
En los ejemplos de este tutorial se usa la StormEvents
tabla , que está disponible públicamente en el clúster de ayuda. Para explorar con sus propios datos, cree su propio clúster gratuito.
Requisitos previos
- Una cuenta de Microsoft o Microsoft Entra identidad de usuario para iniciar sesión en el clúster de ayuda
Contar filas
Empiece por usar el operador count para buscar el número de registros de storm en la StormEvents
tabla.
StormEvents
| count
Salida
Count |
---|
59066 |
Ver un ejemplo de datos
Para obtener una idea de los datos, use el operador take para ver una muestra de registros. Este operador devuelve un número especificado de filas arbitrarias de la tabla, que puede ser útil para obtener una vista previa de la estructura de datos y el contenido generales.
StormEvents
| take 5
En la tabla siguiente solo se muestran 6 de las 22 columnas devueltas. Para ver la salida completa, ejecute la consulta.
StartTime | EndTime | EpisodeId | EventId | State | 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 | MISISIPÍ | Viento de tormenta | ... |
2007-12-30T16:00:00Z | 2007-12-30T16:05:00Z | 11749 | 64588 | GEORGIA | Viento de tormenta | ... |
2007-09-29T08:11:00Z | 2007-09-29T08:11:00Z | 11091 | 61032 | ATLÁNTICO SUR | Tromba de agua | ... |
2007-09-18T20:00:00Z | 2007-09-19T18:00:00Z | 11074 | 60904 | FLORIDA | Lluvia intensa | ... |
Seleccionar un subconjunto de columnas
Use el operador project para simplificar la vista y seleccionar un subconjunto específico de columnas. El uso project
de suele ser más eficaz y fácil de leer que ver todas las columnas.
StormEvents
| take 5
| project State, EventType, DamageProperty
Salida
State | EventType | DamageProperty |
---|---|---|
ATLÁNTICO SUR | Tromba de agua | 0 |
FLORIDA | Lluvia intensa | 0 |
FLORIDA | Tornado | 6200000 |
GEORGIA | Viento de tormenta | 2000 |
MISISIPÍ | Viento de tormenta | 20000 |
Enumerar valores únicos
Parece que hay varios tipos de tormentas en función de los resultados de la consulta anterior. Use el operador distinct para enumerar todos los tipos de tormenta únicos.
StormEvents
| distinct EventType
Hay 46 tipos de tormentas en la tabla. Este es un ejemplo de 10 de ellos.
EventType |
---|
Viento de tormenta |
Granizo |
Riada |
Sequía |
Clima de invierno |
Tormenta invernal |
Nieve pesada |
Viento fuerte |
Escarcha/congelación |
Inundación |
... |
Filtrar por condición
El operador where filtra las filas de datos en función de determinados criterios.
La consulta siguiente busca eventos de storm en un específico State
de un específico EventType
.
StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| project StartTime, EndTime, State, EventType, DamageProperty
Hay 146 eventos que coinciden con estas condiciones. Este es un ejemplo de 5 de ellos.
StartTime | EndTime | State | EventType | DamageProperty |
---|---|---|---|---|
2007-01-13T08:45:00Z | 2007-01-13T10:30:00Z | TEXAS | Inundación | 0 |
2007-01-13T09:30:00Z | 2007-01-13T21:00:00Z | TEXAS | Inundación | 0 |
2007-01-13T09:30:00Z | 2007-01-13T21:00:00Z | TEXAS | Inundación | 0 |
2007-01-15T22:00:00Z | 2007-01-16T22:00:00Z | TEXAS | Inundación | 20000 |
2007-03-12T02:30:00Z | 2007-03-12T06:45:00Z | TEXAS | Inundación | 0 |
... | ... | ... | ... | ... |
Ordenar resultados
Para ver las inundaciones principales en Texas que causaron más daños, use el operador de ordenación para organizar las filas en orden descendente en función de la DamageProperty
columna. El criterio de ordenación predeterminado es descendente. Para ordenar en orden ascendente, especifique asc
.
StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| sort by DamageProperty
| project StartTime, EndTime, State, EventType, DamageProperty
Salida
StartTime | EndTime | State | EventType | DamageProperty |
---|---|---|---|---|
2007-08-18T21:30:00Z | 2007-08-19T23:00:00Z | TEXAS | Inundación | 5000000 |
2007-06-27T00:00:00Z | 2007-06-27T12:00:00Z | TEXAS | Inundación | 1200000 |
2007-06-28T18:00:00Z | 2007-06-28T23:00:00Z | TEXAS | Inundación | 1000000 |
2007-06-27T00:00:00Z | 2007-06-27T08:00:00Z | TEXAS | Inundación | 750000 |
2007-06-26T20:00:00Z | 2007-06-26T23:00:00Z | TEXAS | Inundación | 750000 |
... | ... | ... | ... | ... |
Obtención de las n primeras filas
El operador top devuelve las primeras n filas ordenadas por la columna especificada.
La consulta siguiente devuelve las cinco inundaciones de Texas que causaron la propiedad más dañada.
StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| top 5 by DamageProperty
| project StartTime, EndTime, State, EventType, DamageProperty
Salida
StartTime | EndTime | State | EventType | DamageProperty |
---|---|---|---|---|
2007-08-18T21:30:00Z | 2007-08-19T23:00:00Z | TEXAS | Inundación | 5000000 |
2007-06-27T00:00:00Z | 2007-06-27T12:00:00Z | TEXAS | Inundación | 1200000 |
2007-06-28T18:00:00Z | 2007-06-28T23:00:00Z | TEXAS | Inundación | 1000000 |
2007-06-27T00:00:00Z | 2007-06-27T08:00:00Z | TEXAS | Inundación | 750000 |
2007-06-26T20:00:00Z | 2007-06-26T23:00:00Z | TEXAS | Inundación | 750000 |
Nota
El orden de los operadores es importante. Si lo pone top
aquí where
, obtendrá resultados diferentes. Esto se debe a que cada operador transforma los datos en orden. Para más información, consulte instrucciones de expresión tabular.
Crear columnas calculadas
Los operadores de proyecto y extensión pueden crear columnas calculadas.
Use project
para especificar solo las columnas que desea ver y use extend
para anexar la columna calculada al final de la tabla.
La consulta siguiente crea una columna calculada Duration
con la diferencia entre y StartTime
EndTime
. Dado que solo queremos ver algunas columnas de selección, usar project
es la mejor opción en este caso.
StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| top 5 by DamageProperty desc
| project StartTime, EndTime, Duration = EndTime - StartTime, DamageProperty
Salida
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 | 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 |
Si echa un vistazo a la columna calculada Duration
, es posible que observe que la inundación que provocó el mayor daño también fue la inundación más larga.
Use extend
para ver la columna calculada Duration
junto con todas las demás columnas. La Duration
columna se agrega como la última columna.
StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| top 5 by DamageProperty desc
| extend Duration = EndTime - StartTime
Salida
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 |
Asignación de valores de un conjunto a otro
La asignación estática es una técnica útil para cambiar la presentación de los resultados. En KQL, una manera de realizar la asignación estática es mediante un diccionario dinámico y descriptores de acceso para asignar valores de un conjunto a otro.
let sourceMapping = dynamic(
{
"Emergency Manager" : "Public",
"Utility Company" : "Private"
});
StormEvents
| where Source == "Emergency Manager" or Source == "Utility Company"
| project EventId, Source, FriendlyName = sourceMapping[Source]
Salida
EventId | Source | FriendlyName |
---|---|---|
68796 | Administrador de emergencia | Público |
... | ... | ... |
72609 | Compañía de utilidades | Privados |
... | ... | ... |
Paso siguiente
Ahora que está familiarizado con los aspectos básicos de la escritura de consultas de Kusto, vaya al siguiente tutorial y aprenda a usar las funciones de agregación para obtener información más detallada sobre los datos.
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente las Cuestiones de GitHub como mecanismo de retroalimentación para el contenido y lo sustituiremos por un nuevo sistema de retroalimentación. Para más información, consulta:Enviar y ver comentarios de