top of page

Parte 3: Joins, let y visualizaciones: consultando como un pro en Kusto

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


Empoderando a los entusiastas de los datos en América Latina

Connect with Us

  • YouTube
  • Facebook
  • TikTok
  • Twitter

© 2023 BI LATAM. All Rights Reserved.

bottom of page