Taller semanal del equipo de datos · Sesión 1
2026-07-29
Buenas prácticas de datos
El Query Profile
Qué hizo tu query de verdad
Taller semanal · Sesión 1
Mauro Loprete
Nada de esto se arregla adivinando: hay que mirar qué ejecutó Databricks.
| Sesión | Tema |
|---|---|
| 1 (hoy) | El Query Profile: leer qué hizo tu query |
| 2 | Queries mal optimizadas: los patrones que más duelen |
| 3 | Window functions: potencia y costo |
| 4 | Liquid Clustering: ordenar los datos para leer menos |
Cada sesión: un tema, casos que fui viendo con ustedes, algo para probar en la semana.
1
Qué corre abajo cuando ejecutás
Vos escribís (o dibujás) la query. Databricks decide el plan: en qué orden filtrar, unir y agregar. El Query Profile muestra ese plan, ejecutado, con números reales.
2
Query History y Query Profile
En el menú lateral de Databricks: SQL → Query History
Cuando algo anda lento, lo primero es abrir Query History y ver qué pasó. Por ahí empieza cualquier diagnóstico.
Click en una query → Query Profile. Tres partes:
SELECT c.segmento, m.canal, count(*) AS cant_movs, round(sum(m.monto), 2) AS total
FROM dbx_ml.taller.movimientos m
JOIN (SELECT cliente_id, segmento FROM dbx_ml.taller.clientes_historia WHERE es_vigente) c
ON m.cliente_id = c.cliente_id
WHERE m.fecha >= '2024-06-01' AND m.fecha < '2024-07-01'
GROUP BY 1, 2 ORDER BY total DESC3
Scan, Join, Shuffle y compañía
| Operador | Qué hace |
|---|---|
| Scan | Lee los archivos de una tabla Delta |
| Filter | Aplica el WHERE |
| Project | Selecciona y calcula columnas |
| Join | Une dos fuentes (casi siempre hash join) |
| Shuffle | Redistribuye filas entre workers por una clave |
| Aggregate | El GROUP BY: agrupa y calcula |
| Sort | Ordena filas |
| Window | Funciones de ventana (sesión 3) |
Tres preguntas, en orden:
| Señal | Qué significa | Sesión |
|---|---|---|
| Files pruned ≈ 0 con filtro selectivo | El layout no ayuda a podar archivos | 4 |
| Filas de salida ≫ filas de entrada en un Join | Claves duplicadas: cartesiano | 2 |
| Spill (disco) > 0 | No entró en memoria: sort o join gigante | 2 y 3 |
| Un operador con >80% del tiempo | Ahí está tu problema, no en el resto | hoy |
| Bytes leídos enormes para pocas columnas | SELECT * aguas arriba |
2 |
Con estas cinco señales alcanza para arrancar: cubren casi todos los problemas que nos vamos a cruzar en el taller.
Si una query venía rápida y de golpe es lenta, revisá si algo la sacó de Photon.
No hay que arreglar nada todavía. Solo mirar y contar qué encontraste.
Próxima sesión
Queries mal optimizadas
SELECT *, filtros que no podan, joins explosivos y otros clásicos
¿Preguntas? · Mauro Loprete

Buenas prácticas · Mauro Loprete