Cómo usar variables con let en KQL: paso a paso
En KQL, el operador let permite dar un nombre a un valor o al resultado de una consulta y reutilizarlo tantas veces como necesites. Trabajar con variables con let en KQL hace que las consultas sean más legibles, evita repetir los mismos números y filtros, y facilita el mantenimiento cuando cambia un límite o un período. Es una de las primeras técnicas que conviene dominar cuando empiezas a escribir consultas más grandes, y la encontrarás al principio de casi todas las consultas KQL bien escritas.
Requisitos previos
- Acceso a un entorno que ejecute KQL: Azure Data Explorer, un KQL Queryset en Microsoft Fabric (Real-Time Analytics) o Azure Monitor / Log Analytics.
- Una tabla con algunos datos. Los ejemplos usan una tabla ficticia llamada
Sales, con las columnasAmount,RegionyTimestamp. - Nociones básicas de KQL, como los operadores
whereysummarize.
Paso 1: Crear tu primera variable con let
Una instrucción empieza con la palabra let, seguida del nombre, un signo igual y el valor. Cada instrucción let termina con punto y coma, y a continuación viene la consulta que la utiliza. En el ejemplo, guardamos un límite en una variable y lo usamos en el filtro. El nombre puede tener letras, números y guiones bajos, y distingue mayúsculas de minúsculas.
let amountThreshold = 1000;
Sales
| where Amount > amountThreshold
Si mañana quieres analizar ventas por encima de 5000, cambias solo el número de la primera línea, en lugar de buscarlo en medio de la consulta.
Paso 2: Guardar texto, fechas y períodos
El operador let no sirve solo para números. También puedes guardar texto, fechas e intervalos de tiempo. Esto es práctico para definir un período de análisis una sola vez y reutilizarlo en varios filtros.
let region = "North";
let startDate = ago(30d);
Sales
| where Region == region
| where Timestamp >= startDate
La función ago(30d) devuelve el momento de hace 30 días. Al guardarla en una variable, te aseguras de que todos los filtros parten exactamente del mismo punto en el tiempo.
Paso 3: Guardar el resultado de una consulta
Una variable con let en KQL también puede guardar una tabla entera, es decir, el resultado de otra consulta. Luego usas ese nombre como si fuera una tabla normal. Así divides una consulta compleja en partes más fáciles de leer, y puedes encadenar varias variables tabulares, cada una preparando una parte de los datos.
let RecentSales =
Sales
| where Timestamp >= ago(7d);
RecentSales
| summarize TotalByRegion = sum(Amount) by Region
| order by TotalByRegion desc
Primero definimos RecentSales con los datos de los últimos 7 días. Después agregamos ese resultado por región. Fíjate en que la instrucción termina con punto y coma, pero la consulta final no.
Paso 4: Reutilizar valores y crear pequeñas funciones
La mayor ventaja aparece cuando el mismo valor se usa más de una vez. Con let, lo defines una vez y referencias el nombre donde lo necesites. Incluso puedes crear pequeñas funciones para cálculos repetidos.
let vatRate = 1.23;
let addVat = (value:real) { value * vatRate };
Sales
| extend AmountWithVat = addVat(Amount)
| project Region, Amount, AmountWithVat
Aquí addVat es una función creada con let que recibe un valor y lo devuelve con el IVA incluido. Si la tasa cambia, actualizas solo la variable vatRate y todo el cálculo se ajusta.
Consejo: da nombres descriptivos a tus variables, comoamountThresholden lugar dex. Las consultas KQL se leen de arriba abajo, y los buenos nombres te ahorran comentarios.
Verificar el resultado
Ejecuta cada consulta y confirma que devuelve filas sin errores. Para comprobar que las variables funcionan, cambia el valor en una instrucción let (por ejemplo, amountThreshold de 1000 a 5000) y ejecútala de nuevo: el número de filas debería cambiar según el nuevo filtro. Si recibes un error de sintaxis, revisa que cada instrucción let termine con punto y coma y que la consulta final no tenga uno de más. Vale la pena guardar las consultas que funcionan para reutilizarlas más adelante.
Conclusión
Con let ya puedes nombrar valores, guardar períodos y resultados de consultas, y crear pequeñas funciones para no repetir lógica. El siguiente paso es combinar variables tabulares con join o union para análisis más ricos, manteniendo cada parte legible. ¿Cuál es el valor que más repites en tus consultas y que podrías convertir ya en una variable let?