Reorganización de tablas delta con REORG

Use el REORG comando cuando necesite volver a escribir parte de una tabla Delta para un objetivo de mantenimiento específico. En Fabric, REORG reorganiza el diseño físico de una tabla mediante la reescritura de archivos de datos o la actualización de metadatos de tabla, en función de la opción que elija.

REORG es diferente de la compactación de archivos rutinaria. Tiene como destino escenarios como la eliminación física de filas que eliminan vectores marcados como eliminados.

Qué hace REORG

REORG TABLE vuelve a escribir el estado de la tabla para una operación de mantenimiento definida.

  • APPLY (PURGE) reescribe los archivos de datos afectados para que las filas eliminadas temporalmente a través de vectores de eliminación se quiten físicamente de los archivos Parquet subyacentes.

Utilice REORG cuando necesite un resultado de reescritura específico, no solo archivos más pequeños o menos archivos.

Use PURGE para eliminar físicamente las filas eliminadas lógicamente

Los vectores de eliminación permiten a Delta Lake marcar las filas como eliminadas sin volver a escribir de inmediato los archivos Parquet originales. Ese comportamiento mantiene eficientes las operaciones de eliminación, pero los datos de fila eliminados siguen existiendo en los archivos físicos hasta que los reescriba.

Al ejecutar REORG TABLE ... APPLY (PURGE), Fabric reescribe los archivos afectados y quita las filas eliminadas temporalmente de los archivos Parquet activos. Después de que PURGE finalice, esas filas eliminadas realmente han desaparecido de los archivos reescritos.

Note

PURGE normalmente no es necesario como un paso de mantenimiento independiente. OPTIMIZE elimina automáticamente los archivos en los que más del 5 % de los registros están referenciados por vectores de eliminación durante la compactación. Reserve PURGE para escenarios en los que necesite un control explícito sobre cuándo se quitan físicamente las filas eliminadas temporalmente.

Esta opción es especialmente útil cuando:

  • Tiene requisitos de cumplimiento o del RGPD y necesita que los datos eliminados se eliminen físicamente conforme a un calendario específico.
  • Quiere forzar la purga de archivos que se encuentran por debajo del umbral de 5% que OPTIMIZE usa.

Revisión de la sintaxis

Use los ejemplos siguientes en un cuaderno de Fabric.

Purga de filas eliminadas temporalmente de una tabla

REORG TABLE table_name APPLY (PURGE)

Purgar filas eliminadas temporalmente solo para los datos coincidentes

REORG TABLE table_name WHERE predicate APPLY (PURGE)

Use una WHERE cláusula cuando quiera tener como destino particiones específicas o un segmento de datos más pequeño.

REORG TABLE sales.orders
WHERE order_date = DATE '2026-05-01'
APPLY (PURGE)

Elegir REORG o OPTIMIZE

REORG y OPTIMIZE resuelven diferentes problemas.

  • OPTIMIZE realiza la compactación de contenedores. Consolida archivos pequeños en archivos más grandes para mejorar la eficacia del examen.
  • REORG ... APPLY (PURGE) elimina físicamente las filas que los vectores de eliminación marcaron como eliminadas.

Puede usar ambos comandos juntos. Por ejemplo, puede ejecutar REORG ... APPLY (PURGE) para quitar físicamente los datos eliminados y, a continuación, ejecutar OPTIMIZE para mejorar el diseño del archivo.

Comprender los vectores de eliminación

Los vectores de eliminación son estructuras de metadatos que marcan filas como eliminadas sin volver a escribir inmediatamente los archivos Parquet que contienen esas filas. Los lectores respetan los vectores de eliminación, por lo que las filas eliminadas no aparecen en los resultados de la consulta, pero los bytes siguen estando en el almacenamiento hasta que se produzca una reescritura.

REORG ... APPLY (PURGE) es el paso que elimina físicamente esas filas de los archivos Parquet reescritos.

Ejecutar REORG en Fabric

Ejecute REORG desde experiencias basadas en Spark en Fabric, como:

  • Cuadernos de notas de Fabric
  • Definiciones de trabajos de Spark

No ejecute REORG desde el punto de conexión de SQL Analytics. REORG es un comando de mantenimiento de Spark SQL para tablas Delta.

Siga los procedimientos recomendados

  • Ejecute PURGE solo cuando tenga una necesidad específica, como los requisitos de cumplimiento. OPTIMIZE purga automáticamente los archivos en los que se hace referencia a más de 5% de registros mediante vectores de eliminación, por lo que el mantenimiento rutinario normalmente no requiere un paso independiente PURGE .
  • Ejecute PURGE antes de VACUUM cuando necesite que los datos eliminados se supriman físicamente para cumplir los requisitos de cumplimiento normativo o del RGPD.
  • Utiliza predicados WHERE para dirigirte a particiones específicas cuando no necesites reescribir toda la tabla.
  • Utilice UPGRADE UNIFORM cuando necesite lectores de Iceberg, pero tenga en cuenta los metadatos adicionales que mantiene UniForm.
  • Tratar REORG y OPTIMIZE como operaciones de mantenimiento complementarias, no indistintas.