top of page

Parte 1 - Introducción a KQL: Primeros pasos con Kusto Query Language

Updated: Apr 1


¿Qué es KQL y para qué sirve?


Kusto Query Language (KQL) es un lenguaje diseñado por Microsoft para consultar, transformar y analizar grandes volúmenes de datos, en especial aquellos que llegan en forma de eventos, logs, métricas o series temporales. A diferencia de SQL tradicional, que se enfoca más en operaciones transaccionales (crear, modificar, eliminar registros), KQL está pensado exclusivamente para analizar datos existentes de forma rápida, flexible y declarativa.


Es ampliamente utilizado en:


  • Azure Data Explorer (ADX)

  • Microsoft Fabric (KQL DB en Real-Time Intelligence)

  • Azure Monitor / Log Analytics / Application Insights


KQL se ha vuelto muy popular en entornos de análisis operacional y monitoreo en tiempo real, como detectar anomalías, visualizar tendencias, o reaccionar a eventos de negocio casi instantáneamente.


¿En qué se diferencia de SQL?


Aunque visualmente puede parecerse a SQL, KQL trabaja con una sintaxis basada en operadores encadenados por tuberías (|), más parecida a lo que usarías en herramientas como PowerShell o Unix..

Característica

SQL

KQL

Orientación

Transaccional (OLTP)

Analítica, series temporales, logs

Escritura de consultas

SELECT ... FROM ... WHERE

`Tabla

Inserciones/actualizaciones

No (solo lectura)

Enfoque en tiempo real

Limitado

Muy optimizado

Datos semiestructurados

Soporte parcial

Soporte completo con dynamic (JSON)


Tipos de datos comunes en KQL


En KQL, trabajamos con tipos simples y potentes para análisis de series de tiempo y comportamiento de eventos:


  • string: texto

  • int, long: números enteros

  • real, decimal: decimales

  • datetime: fechas y horas

  • timespan: intervalos de tiempo

  • bool: valores lógicos

  • dynamic: estructuras JSON (listas, objetos)




Sintaxis básica con ejemplos del mundo financiero


Vamos a imaginar que tenemos una tabla de eventos llamada TransaccionesBancarias, donde cada fila representa una transacción financiera registrada por una entidad bancaria.


  • Seleccionar columnas específicas

***KQL***

TransaccionesBancarias

| project Fecha, ClienteID, Monto, TipoTransaccion


Muestra solo las columnas que te interesan, útil para inspeccionar datos rápidamente.


  • where – Filtrar según condiciones

kql

TransaccionesBancarias

| where TipoTransaccion == "Transferencia" and Monto > 10000


Consulta todas las transferencias mayores a $10.000. Esto puede usarse como base para detectar operaciones de alto valor o potencial lavado de dinero.


  • summarize – Agregar valores

kql

TransaccionesBancarias

| summarize TotalTransferencias = sum(Monto) by ClienteID


Agrupa todas las transacciones por cliente y calcula el total transferido.


  • order by – Ordenar resultados

kql

TransaccionesBancarias

| summarize Total = sum(Monto) by ClienteID

| order by Total desc

Lista los clientes que más dinero han movido, de mayor a menor.


  • Top 5 clientes con más retiros en la última semana

kql

TransaccionesBancarias

| where TipoTransaccion == "Retiro" and Fecha > ago(7d)

| summarize TotalRetiros = sum(Monto) by ClienteID

| order by TotalRetiros desc

| take 5


  • Tendencia de volumen de operaciones por día

kql

TransaccionesBancarias

| summarize TotalDiario = sum(Monto) by bin(Fecha, 1d)

| render timechart

Esta consulta agrupa el total de dinero movido cada día, y lo grafica automáticamente como serie temporal. Muy útil para ver comportamiento de clientes, campañas o actividad irregular.


***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