Tutorial: Información sobre operadores comunes
Se aplica a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
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 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 operadores comunes (este artículo)
- Uso de funciones de agregación
- Combinación de 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.
En los ejemplos de este tutorial se usa la StormEvents
tabla , que está disponible públicamente en los datos de ejemplo de Análisis meteorológicos.
Requisitos previos
Para ejecutar las siguientes consultas, necesita un entorno de consulta con acceso a los datos de ejemplo. Puede usar cualquiera de los siguientes medios:
- Una cuenta microsoft o una identidad de usuario de Microsoft Entra para iniciar sesión en el clúster de ayuda
- Una cuenta microsoft o una identidad de usuario de Microsoft Entra
- Un área de trabajo de Fabric con una capacidad habilitada para Microsoft Fabric
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 |
Consulte 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, lo que puede resultar útil para obtener una vista previa de la estructura y el contenido generales de los datos.
StormEvents
| take 5
En la tabla siguiente solo se muestran 5 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 | 12,554 | 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 de proyecto para simplificar la vista y seleccionar un subconjunto específico de columnas. El uso project
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 fuerte |
Viento fuerte |
Helada/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 el mayor daño, 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 de la A a la Z; 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 |
... | ... | ... | ... | ... |
Obtener las n primeras filas
El operador superior devuelve las primeras n filas ordenadas por la columna especificada.
La consulta siguiente devuelve las cinco inundaciones de Texas que provocaron 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 pones top
aquí where
, obtendrás 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.
Creación de columnas calculadas
Los operadores de proyecto y extensión pueden crear columnas calculadas.
Use project
para especificar solo las columnas que desea ver y usar 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
. Puesto 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 causó 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 | Privada |
... | ... | ... |
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.