Parte 3: Joins, let y visualizaciones: consultando como un pro en Kusto
- Ahias Portillo
- Dec 1, 2024
- 3 min read
Updated: Apr 1

Bienvenidos a la tercera parte de nuestra serie sobre Kusto Query Language (KQL), el lenguaje detrás de muchos de los motores de análisis en tiempo real en Microsoft Fabric y Azure Data Explorer.
Hasta aquí, ya trabajamos con filtros, agregaciones y operaciones básicas. Pero ahora es momento de escalar: cuando los datos no vienen todos en una sola tabla, cuando necesitas reutilizar tu lógica, y cuando querés visualizar tus hallazgos sin salir del entorno de consulta.
En este post vamos a explorar tres conceptos clave que te ayudarán a escribir consultas más limpias, más eficientes y más útiles:
join: para combinar datos de diferentes tablas.
let: para simplificar y reutilizar partes de tu lógica.
render: para visualizar los resultados directamente desde la consulta.
Combinando fuentes con join
En la práctica, no vas a tener todos tus datos en una sola tabla. Vas a necesitar unir eventos de sistema con información de clientes, logs con catálogos, o como en finanzas: transacciones con tasas o clasificaciones.
KQL soporta varios tipos de joins, siendo los más usados:
inner: devuelve solo los registros que tienen coincidencia en ambas tablas.
leftouter: devuelve todo de la tabla izquierda y lo que coincida de la derecha.
anti: devuelve lo que está en la izquierda y no está en la derecha (muy útil para encontrar “faltantes”).
Ejemplo 1: inner join
Este ejemplo toma transacciones en dólares y las convierte a moneda local usando la tasa oficial del día. Un uso clásico para análisis contable o conciliación cambiaria.
TransaccionesUSD | where Fecha > ago(7d) | join kind=inner ( TasasCambio | where Moneda == "USD" ) on Fecha | extend MontoConvertido = MontoUSD * Tasa | project Fecha, ClienteID, MontoUSD, Tasa, MontoConvertido |
Ejemplo 2: anti join
Esta consulta busca clientes que no han tenido actividad en los últimos 30 días. Puede alimentar campañas de retención o auditoría de cuentas inactivas.
Clientes | join kind=anti ( Transacciones | where Fecha > ago(30d) ) on ClienteID |
Ejemplo 3: Reutilizando lógica con let
En Kusto, let te permite definir bloques reutilizables, tanto para filtros como para cálculos, estructuras intermedias o incluso listas estáticas. Es especialmente útil cuando tu consulta se hace larga o repetitiva.
let TasasRecientes = TasasCambio | where Fecha == ago(1d) | project Moneda, Tasa; let OperacionesActivas = Transacciones | where Estado == "Activo" and Fecha > ago(7d); OperacionesActivas | join kind=inner TasasRecientes on Moneda | extend MontoLocal = Monto * Tasa | project Fecha, ClienteID, Moneda, Monto, Tasa, MontoLoca |
Visualización directa con render
Una de las grandes ventajas de Kusto es que no necesitas salir del entorno para empezar a visualizar tus datos. Con render podés generar gráficos de líneas, columnas, pie charts, etc., directamente desde la consulta.
Esto es ideal para escenarios de monitoreo, exploración de tendencias o prototipado de dashboards.
Ejemplo 1: visualización de volumen diario por tipo de transacción
Te muestra una serie temporal de volúmenes diarios, segmentados por tipo de operación (ej. depósitos, retiros, transferencias).
Transacciones | where Fecha > ago(14d) | summarize Total = sum(Monto) by bin(Fecha, 1d), TipoOperacion | render timechart |
Ejemplo 2: proporción de operaciones por producto financiero
Esto te da un gráfico circular con la distribución de operaciones por tipo de producto: cuentas corrientes, tarjetas, inversiones, etc.
Transacciones | summarize Cantidad = count() by Producto | render piechart |
Resumen
Cuando aprendés a usar join, let y render, tu nivel en Kusto cambia. Ya no estás escribiendo una consulta, estás diseñando una pieza de análisis estructurada, mantenible y visualizable.
Y eso es justamente lo que buscamos como arquitectos de datos: claridad, modularidad, rendimiento y utilidad.
Porque una buena consulta no es solo la que funciona, es la que podés leer, compartir y escalar mañana sin miedo.
***Este contenido fue potenciado con IA. Porque cuando el conocimiento humano se encuentra con la inteligencia artificial, surgen mejores ideas.***
Comments