Mantenimiento de tablas delta en Microsoft Fabric

El mantenimiento de las tablas Delta ayuda a mantenerlas ágiles y con un uso eficiente del almacenamiento a medida que crecen. Con el tiempo, las tablas Delta pueden acumular muchos archivos pequeños, los datos eliminados pueden seguir usando espacio de almacenamiento y las estadísticas obsoletas pueden reducir la eficacia de las consultas. El mantenimiento normal le ayuda a mejorar el rendimiento de lectura, recuperar el almacenamiento y mantener los metadatos de tabla alineados con la forma en que las cargas de trabajo acceden a los datos. Use este artículo como guía rápida de las principales operaciones de mantenimiento disponibles para las tablas Delta.

¿Por qué importa el mantenimiento?

A medida que crecen las tablas Delta, la actividad de escritura cambia el diseño físico de la tabla. Los trabajos de ingesta repetidos pueden crear muchos archivos pequeños, actualizar y eliminar operaciones pueden dejar atrás archivos sin referencia o filas eliminadas temporalmente, y las estadísticas anteriores pueden dificultar que Spark omita datos innecesarios. Si realiza el mantenimiento de las tablas con regularidad, reducirá la sobrecarga de los análisis, ayudará a Fabric a optimizar las consultas de forma más eficaz y evitará seguir pagando por almacenamiento que las versiones activas de las tablas ya no necesitan.

Uso de OPTIMIZE para la compactación de cubos

Use OPTIMIZE cuando la tabla Delta haya acumulado muchos archivos pequeños y quiera consolidarlos en menos archivos más grandes. Esta operación mejora el rendimiento de lectura al reducir la sobrecarga de administración de archivos y hacer que los exámenes sean más eficaces. OPTIMIZE también admite otros argumentos y características como VORDER. Para la sintaxis completa, opciones y ejemplos, véase Compactación de la tabla y orden V.

OPTIMIZE table_name

Uso de VACUUM para la limpieza de almacenamiento

Use VACUUM cuando desee quitar archivos de datos sin referencia que sean anteriores a la ventana de retención configurada. En Fabric, esta operación ayuda a recuperar almacenamiento de OneLake después de actualizaciones, eliminaciones, combinaciones, operaciones de sobrescritura y compactación. VACUUM se centra en la limpieza del almacenamiento en lugar de la optimización de consultas, por lo que normalmente complementa otras tareas de mantenimiento en lugar de reemplazarlas. Para obtener instrucciones de retención y detalles de ejecución, consulte VACUUM.

VACUUM table_name

Uso de REORG para reorganización dirigida

Use REORG cuando necesite volver a escribir el estado de la tabla para un objetivo de mantenimiento específico en lugar de la compactación general de archivos. En Delta Lake, REORG TABLE ... APPLY (PURGE) elimina físicamente las filas que los vectores de eliminación marcaron como eliminadas. Para conocer las opciones admitidas y cuándo usarlas, consulte Reorganizar tablas delta con REORG.

Note

REORG no suele ser necesario porque OPTIMIZE purga automáticamente los archivos en los que los vectores de eliminación hacen referencia a más del 5 % de los registros.

REORG TABLE table_name APPLY (PURGE)

Mantener las estadísticas actualizadas

El entorno de ejecución de Spark de Fabric admite dos tipos de estadísticas en tablas delta: estadísticas de archivos y estadísticas de tabla.

  • Estadísticas de archivo—Delta Lake registra los valores mínimos, máximos y el número de valores nulos de cada archivo para las columnas indexadas cada vez que se escribe un archivo de datos. El motor de Spark usa estas estadísticas para omitir los archivos que no pueden contener filas que coincidan con un predicado de consulta, lo que reduce la cantidad de datos examinados. De forma predeterminada, las estadísticas se recopilan para las primeras 32 columnas. Para más información sobre cómo funciona la omisión de archivos y cómo personalizar para qué columnas se recopilan estadísticas, consulte Omisión de archivos.
  • Estadísticas de tabla: las estadísticas de nivel de columna agregadas en todos los archivos de la tabla se mantienen automáticamente para que Spark tenga mejores metadatos para el planeamiento de consultas. Estas estadísticas mejoran el rendimiento mediante mejores decisiones de optimización para filtros, combinaciones y agregaciones. Para obtener información sobre cómo funcionan las estadísticas automatizadas y cómo configurarlas, consulte Estadísticas automatizadas para tablas delta.

Uso de la autocompacción para la administración continua de archivos

Delta Lake también admite la compactación automática tras las operaciones de escritura, de modo que las tablas puedan mantenerse en mejor estado sin necesidad de una tarea manual aparte cada vez. Puede controlar este comportamiento a través de las propiedades de la tabla o la configuración del área de trabajo, en función de cómo administre las cargas de trabajo de Spark. Consulte Compactación automática para obtener más información sobre cómo habilitar.

Ejecución del mantenimiento desde la interfaz de usuario de Lakehouse

Si prefieres un flujo de trabajo basado en la interfaz, puedes ejecutar acciones de mantenimiento directamente desde el explorador Lakehouse, consulta mantenimiento de la tabla Lakehouse.

Seguir una cadencia práctica de mantenimiento

Ejecute OPTIMIZE después de la ingesta de grandes lotes o cada vez que los archivos pequeños empiecen a acumularse y ralenticen la lectura. Ejecute VACUUM de forma regular, por ejemplo, semanalmente o tras ciclos de compactación importantes, para recuperar espacio de almacenamiento de archivos a los que la tabla ya no hace referencia. REORG TABLE ... APPLY (PURGE) no es necesario como mantenimiento rutinario porque OPTIMIZE purga automáticamente los archivos en los que se hace referencia a más de 5% de registros por vectores de eliminación. Reserva PURGE para escenarios que requieren control explícito, como el cumplimiento o las obligaciones del RGPD. Supervise la condición de la tabla con DESCRIBE DETAIL y DESCRIBE HISTORY para que pueda realizar un seguimiento de los recuentos de archivos, el tamaño y el historial de mantenimiento antes y después de cada operación.

-- View current table state
DESCRIBE DETAIL table_name;

-- View history of transactions
DESCRIBE HISTORY table_name;