Eliminar una característica de tabla de Delta Lake y degradar el protocolo de tabla

En Databricks Runtime 16.4 LTS y versiones posteriores, DROP FEATURE quita una característica de tabla de Delta Lake y degrada el protocolo de tabla a la versión más baja que admite las características restantes. Úselo solo para restaurar la compatibilidad con versiones anteriores de Databricks Runtime, OpenSharing o clientes externos de Delta Lake.

No todas las características se pueden quitar. Consulte Características de tabla admitidas.

Note

La compatibilidad heredada para DROP FEATURE está disponible a partir de Databricks Runtime 14.3 LTS. Databricks recomienda usar Databricks Runtime 16.3 y versiones posteriores para todos los DROP FEATURE comandos, lo que reemplaza el comportamiento heredado. Para obtener documentación sobre la funcionalidad heredada, consulte Drop Delta table features (legacy).

Eliminar una característica de Delta Lake

Importante

Todas las operaciones DROP FEATURE entran en conflicto con todas las escrituras simultáneas.

Las lecturas en streaming fallan cuando encuentran un commit que cambia los metadatos de la tabla. Debe reiniciar los flujos afectados. Para conocer los métodos recomendados, consulte Consideraciones de producción para Structured Streaming.

Debe usar Databricks Runtime 16.3 o superior y tener los privilegios MODIFY en la tabla Delta Lake de destino. Únicamente puede eliminar una funcionalidad de tabla con cada comando DROP FEATURE.

Para quitar una característica de tabla, use la sintaxis siguiente:

ALTER TABLE <table-name> DROP FEATURE <feature-name>

Consulte ALTER TABLE para obtener más detalles.

Comportamiento

Al quitar una característica de tabla, Delta Lake confirma de forma atómica los siguientes cambios en la tabla:

  • Desactive las propiedades de la tabla que usan la función de tabla.
  • Reescriba los archivos de datos subyacentes según sea necesario para eliminar todo rastro de la funcionalidad de tabla de la versión actual de la tabla.
  • Cree un conjunto de puntos de control protegidos que permitan a los clientes lectores leer correctamente el historial de tablas.
  • Agregue la función de tabla del escritor checkpointProtection al protocolo de tabla.
  • Cambie el protocolo de tabla a las versiones de lector y escritor más bajas que admiten todas las características restantes de la tabla. Consulte Protocolo más bajo posible.

La checkpointProtection función de tabla

Al quitar una característica, Delta Lake vuelve a escribir datos y metadatos en el historial de la tabla como puntos de control protegidos para respetar la degradación del protocolo.

Después de la degradación, la tabla no requiere que los clientes admitan la característica eliminada. Los puntos de control protegidos y la checkpointProtection característica realizan lo siguiente:

  • Los clientes de lector que admiten la característica de tabla quitada pueden leer todas las versiones de historial de tablas disponibles.
  • Los clientes lectores que no admiten la característica quitada pueden leer las versiones del historial de tablas desde la versión de degradación del protocolo hacia delante.
  • Los clientes de escritor no modifican los puntos de control creados antes de la degradación del protocolo.
  • checkpointProtection marca los puntos de control de degradación del protocolo como protegidos y las operaciones de mantenimiento de tablas respetan esos marcadores.

Aunque solo puede quitar una característica de tabla con cada DROP FEATURE comando, una tabla puede tener varios puntos de control protegidos y quitar características en su historial de tablas.

Todas las versiones de Databricks Runtime admiten la checkpointProtection característica de tabla, lo que significa que esta característica de tabla no bloquea las lecturas o escrituras en Azure Databricks.

checkpointProtection no bloquea el acceso en modo de solo lectura desde clientes de OSS Delta Lake. Para degradar completamente la tabla y quitar la función de tabla checkpointProtection, debe usar TRUNCATE HISTORY. Databricks solo recomienda usar este patrón si necesita escribir en tablas con clientes delta externos que no admiten checkpointProtection. Consulte Protocolos de tabla de degradación completa para clientes heredados.

Características de tabla admitidas

Puede quitar las siguientes características de la tabla de Delta Lake:

No se pueden quitar otras características de la tabla de Delta Lake.

Importante

Databricks recomienda probar siempre las cargas de trabajo y los sistemas dependientes por motivos de compatibilidad con nuevas características antes de habilitar las características que actualizan los protocolos de lectura o escritura para los datos de producción.

Ten en cuenta lo siguiente:

  • Quitar la asignación de columnas de una tabla no quita los prefijos aleatorios usados en los nombres de directorio para las tablas con particiones. Consulte si Delta Lake y Parquet comparten estrategias de creación de particiones.
  • Algunas características de Delta Lake permiten varias características de tabla que dependen entre sí, lo que puede impedir que se quiten las características dependientes. No se pueden revertir las características que no se pueden quitar.

Protocolos de tabla de degradación completa para clientes heredados

Si usa clientes externos de Delta Lake con escrituras que no admiten la checkpointProtection característica de tabla, debe usar TRUNCATE HISTORY para degradar completamente el protocolo de tabla y quitar todos los seguimientos de las características de tabla eliminadas. Al ejecutar TRUNCATE HISTORY , se quita todo el historial de tablas anterior a 24 horas.

Databricks recomienda probar el comportamiento predeterminado para DROP FEATURE antes de ejecutar TRUNCATE HISTORY.

La degradación completa requiere dos pasos, al menos 24 horas de diferencia.

Paso 1: Prepárese para eliminar una característica de tabla

Ejecute el comando ALTER TABLE <table-name> DROP FEATURE <feature-name> TRUNCATE HISTORY. El comando aplica lo siguiente:

  • Actualiza las propiedades de la tabla para desactivar la característica.
  • Restablece las propiedades de tabla asociadas de la característica a sus valores predeterminados.
  • Reescribe los archivos de datos y metadatos según sea necesario para reflejar las propiedades actualizadas.
  • Devuelve un mensaje que requiere que espere al menos 24 horas antes de volver a ejecutarlo para completar la degradación del protocolo.

Después de desactivar una característica, puede seguir escribiendo en la tabla de destino antes de completar la degradación del protocolo, pero no puede usar la característica de tabla que va a quitar.

Note

Si deja la tabla en este estado, las operaciones en la tabla no usan la característica de tabla, pero el protocolo sigue admitiendo la característica de tabla. Hasta que completes el último paso de la degradación, la tabla no es legible para los clientes de Delta que no admiten la función de tabla.

Paso 2: Degradar el protocolo y quitar una característica de tabla

Después de al menos 24 horas, vuelva a ejecutar el ALTER TABLE <table-name> DROP FEATURE <feature-name> TRUNCATE HISTORY comando. El comando aplica lo siguiente:

  • Trunca el historial de la tabla hasta el umbral de retención.
  • Confirma que no hay transacciones restantes que usen la característica.
  • Quita la característica y degrada el protocolo de tabla a la versión más baja que admite las características restantes.

Importante

La ejecución ALTER TABLE <table-name> DROP FEATURE <feature-name> TRUNCATE HISTORY quita todos los datos del registro de transacciones anteriores a 24 horas. Después de usar este comando para degradar el protocolo de tabla, no se puede acceder al historial de tablas ni al viaje de tiempo.

Consulte Compatibilidad y protocolos de características de Delta Lake.