(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa

Cómo optimizar tablas Delta en un Lakehouse: paso a paso

João Barros 05 de July de 2026 4 min de lectura

Con el tiempo, una tabla Delta en un Lakehouse acumula muchos archivos Parquet pequeños, como resultado de cargas y actualizaciones frecuentes. Tener muchos archivos pequeños hace que las lecturas sean lentas y desperdicia recursos de cómputo. Optimizar tablas Delta en un Lakehouse con el comando OPTIMIZE compacta esos archivos y, junto con VACUUM, elimina los antiguos que ya no se necesitan — manteniendo tus consultas rápidas.

Requisitos previos

  • Un workspace de Microsoft Fabric con capacidad activa (versión de prueba o de pago).
  • Un Lakehouse ya creado, con al menos una tabla Delta (por ejemplo, cargada desde un CSV).
  • Permisos para ejecutar tareas de mantenimiento en ese Lakehouse.
  • Nociones básicas de Spark SQL, solo si eliges el camino con notebook.

Paso 1: Entender cuándo optimizar

El problema más común tiene nombre: el problema de los "small files" (archivos pequeños). Cada carga de datos puede crear decenas de archivos Parquet pequeños y, cuando el motor lee la tabla, tiene que abrir todos esos archivos — lo que es lento. El comando OPTIMIZE lo resuelve al unir muchos archivos pequeños en unos pocos archivos grandes. La opción V-Order va más allá: ordena, codifica y comprime los datos para que motores como Power BI en Direct Lake y el SQL analytics endpoint lean más rápido. Una buena regla práctica es ejecutar el mantenimiento después de cargas o actualizaciones grandes, o cuando notes que las consultas se han vuelto más lentas.

Paso 2: Ejecutar OPTIMIZE y V-Order desde la interfaz

La forma más sencilla no requiere código. Abre tu Lakehouse y ve a la pestaña que muestra las tablas. Pasa el ratón sobre la tabla que quieres optimizar, haz clic en los tres puntos (…) y elige Maintenance. En la ventana que aparece, configura lo siguiente:

  1. Activa Run OPTIMIZE command now para compactar los archivos.
  2. Marca la casilla Apply V-Order si quieres la ganancia extra de lectura. V-Order tiene alrededor de un 15% de impacto en el tiempo de escritura, pero puede ofrecer hasta un 50% más de compresión.
  3. Si también quieres limpiar ya los archivos antiguos, activa VACUUM y confirma el umbral de retención.
  4. Haz clic en Run now.

Fabric lanza un trabajo de Spark en segundo plano. Puedes cerrar la ventana y seguir el progreso en el monitor de ejecuciones.

Paso 3: La alternativa en notebook con Spark SQL

Si prefieres automatizar, puedes hacer lo mismo en un notebook conectado al Lakehouse. Crea un notebook, comprueba que el Lakehouse está adjunto en el panel de la izquierda y ejecuta una celda de SQL. Sustituye vendas por el nombre de tu tabla:

%%sql
OPTIMIZE vendas;

Este comando compacta los archivos pequeños de la tabla. En tablas con muchas escrituras, ejecutar OPTIMIZE con regularidad evita que el rendimiento se degrade con el tiempo.

Consejo: no optimices por optimizar. En tablas pequeñas o que se escriben pocas veces, ejecutar OPTIMIZE demasiado a menudo no aporta mejoras visibles y gasta cómputo sin sentido.

Paso 4: Limpiar archivos antiguos con VACUUM

OPTIMIZE crea archivos nuevos, pero los antiguos siguen existiendo para dar soporte al time travel de Delta Lake. Para liberar espacio, VACUUM elimina los archivos que ya no están referenciados y que han superado el período de retención. El valor predeterminado es de siete días. En una celda del notebook:

%%sql
VACUUM vendas RETAIN 168 HOURS;

168 horas equivalen a siete días. No definas un valor inferior a siete días sin entender el impacto: puedes romper el time travel y afectar lecturas en curso. El orden recomendado es simple — ejecuta primero OPTIMIZE y solo después VACUUM.

Verificar el resultado

Para confirmar que la optimización funcionó, comprueba cuántos archivos tiene ahora la tabla. En un notebook, ejecuta:

%%sql
DESCRIBE DETAIL vendas;

Fíjate en la columna numFiles: después de OPTIMIZE debería ser bastante menor que antes, mientras que sizeInBytes refleja archivos más grandes y eficientes. En la práctica, notarás consultas e informes más rápidos. También puedes confirmar en el monitor de Fabric que el trabajo de Spark terminó correctamente.

Conclusión

Con OPTIMIZE, V-Order y VACUUM tienes todo lo necesario para mantener las tablas Delta de tu Lakehouse rápidas y ordenadas. El siguiente paso es hacerlo automático: usa la actividad Lakehouse Maintenance en una pipeline de Data Factory, o programa un notebook para que se ejecute después de tus cargas más grandes. ¿Con qué frecuencia crees que tus tablas más activas necesitan mantenimiento — diaria, semanal, o solo después de grandes cargas?