Cómo filtrar datos con el operador where en KQL: ejemplo
El operador where es la forma más común de filtrar datos en KQL: conserva solo las filas que cumplen una condición y descarta el resto. Como las tablas de Real-Time Analytics crecen cada segundo, un buen filtro es la diferencia entre una consulta rápida y otra que recorre millones de registros sin necesidad. A continuación verás ejemplos prácticos con números, texto y fechas.
Requisitos previos
- Una base de datos KQL en Microsoft Fabric (Real-Time Intelligence) o en Azure Data Explorer.
- Una tabla con datos para consultar. En los ejemplos usamos una tabla
Telemetriacon las columnasTimestamp,SensorId,RegiaoyTemperatura. - Nociones básicas de cómo abrir un KQL Queryset y ejecutar una consulta.
Paso 1: Filtrar por un valor numérico
Empieza por el caso más sencillo: mostrar solo las lecturas en las que la temperatura supera los 30 grados. Escribe el nombre de la tabla, el pipe | y la condición después de where.
Telemetria
| where Temperatura > 30
El resultado tiene exactamente las mismas columnas que la tabla original, pero solo con las filas donde la condición es verdadera. Puedes usar los operadores >, >=, <, <=, == (igual) y != (distinto).
Paso 2: Combinar varias condiciones
Para aplicar más de un criterio a la vez, une las condiciones con and (todas deben ser verdaderas) u or (basta con una). Así puedes, por ejemplo, aislar las temperaturas altas de una sola región.
Telemetria
| where Temperatura > 30 and Regiao == "Norte"
Puedes encadenar varios where seguidos: el efecto es el mismo que usar and y a menudo resulta más legible.
Telemetria
| where Temperatura > 30
| where Regiao == "Norte"
Paso 3: Filtrar texto (has, contains y startswith)
Al filtrar columnas de texto, el operador que elijas afecta al rendimiento. El operador has busca palabras completas y usa el índice de términos, por lo que es rápido. El contains busca cualquier fragmento de texto (una subcadena); es más flexible pero más lento, porque recorre todos los valores.
Telemetria
| where SensorId has "porta"
| where Regiao startswith "N"
Buena práctica: prefiere has siempre que busques una palabra completa; reserva contains para cuando de verdad necesites parte de una palabra. Cuidado con las mayúsculas: == distingue mayúsculas de minúsculas, mientras que =~ y el propio has las ignoran.
Paso 4: Filtrar por fecha y hora
En Real-Time Analytics es muy habitual querer solo los datos más recientes. La función ago() se refiere a un periodo contando desde ahora: ago(1h) significa "hace una hora".
Telemetria
| where Timestamp > ago(1h)
Para un intervalo fijo, usa between con dos fechas. El operador .. separa el inicio del final.
Telemetria
| where Timestamp between (datetime(2026-07-01) .. datetime(2026-07-05))
Paso 5: Filtrar pronto para ganar velocidad
El orden importa. Coloca where lo más pronto posible en la consulta, antes de join, summarize o sort. Al reducir enseguida el número de filas, todas las operaciones siguientes trabajan sobre menos datos y la consulta se ejecuta más rápido.
Telemetria
| where Timestamp > ago(24h) and Temperatura > 30
| summarize Leituras = count() by Regiao
Comprobar el resultado
Para confirmar que el filtro funcionó, cuenta las filas antes y después. Ejecuta primero la tabla solo con | count y luego con tu where seguido de | count: el segundo número debería ser menor. También puedes usar | take 10 para ver una muestra y confirmar que todas las filas cumplen la condición que definiste.
Telemetria
| where Temperatura > 30
| count
Conclusión
Ya sabes filtrar datos en KQL por números, texto y fechas, y por qué el orden y la elección entre has y contains marcan la diferencia. El siguiente paso natural es combinar where con summarize para agregar los datos filtrados, o con render para visualizarlos en un gráfico. ¿Cuál será el primer filtro que necesitas aplicar a tus datos de telemetría?