Quitar características de la tabla Delta
Importante
La compatibilidad con la eliminación de características de tabla Delta y versiones anteriores del protocolo está en versión preliminar pública en Databricks Runtime 14.1 y versiones posteriores.
Azure Databricks proporciona compatibilidad limitada para quitar características de tabla. Para quitar una característica de tabla, debe producirse lo siguiente:
- Deshabilite las propiedades de la tabla que usan la característica de tabla.
- Quite todos los seguimientos de la característica de tabla de los archivos de datos que respaldan la tabla.
- Quite las entradas de transacción que usan la característica de tabla del registro de transacciones.
- Degrada el protocolo de tabla.
Cuando sea compatible, solo debe usar esta funcionalidad para admitir la compatibilidad con versiones anteriores de Databricks Runtime, Delta Sharing u otros clientes de lector o escritor de Delta Lake.
Importante
Todas las operaciones DROP FEATURE
entran en conflicto con todas las escrituras simultáneas.
Se produce un error en las lecturas de streaming cuando encuentran una confirmación que cambia los metadatos de la tabla. Si quiere que la transmisión continúe, debe reiniciarla. Para conocer los métodos más recomendables, consulte Consideraciones de producción para Structured Streaming.
¿Cómo puedo quitar una característica de tabla Delta?
Para quitar una característica de tabla Delta, ejecute un comandoALTER TABLE <table-name> DROP FEATURE <feature-name> [TRUNCATE HISTORY]
. Consulte ALTER TABLE.
Debe usar Databricks Runtime 14.1 o superior y tener MODIFY
privilegios en la tabla Delta de destino.
¿Qué características de la tabla Delta se pueden quitar?
Puede anular las siguientes características de la tabla Delta:
deletionVectors
. Consulte ¿Qué son los vectores de eliminación?.v2Checkpoint
. Consulte Compatibilidad para tablas con agrupación en clústeres líquidos.columnMapping
. Consulte Cambio de nombre y eliminación de columnas con la asignación de columnas de Delta Lake.typeWidening-preview
. Consulte Ampliación de tipos.checkConstraints
. Consulte Restricciones en Azure Databricks.
No se pueden quitar otras características de la tabla Delta.
Habilitación de las características de tabla para quitar características heredadas
El comando DROP FEATURE
requiere versiones de protocolo que admiten lecturas y escrituras de características de tablas. Características Delta como columnMapping
y checkConstraints
se admitieron en versiones anteriores del protocolo. En función de otras características habilitadas en la tabla, es posible que tenga que actualizar las versiones del protocolo para poder quitar estas características.
Use el siguiente comando para actualizar las versiones de lector y escritor de tablas para colocar la asignación de columnas y degradar el protocolo:
ALTER TABLE <table-name> SET TBLPROPERTIES (
'delta.minReaderVersion' = '3',
'delta.minWriterVersion' = '7'
)
¿Cómo se quitan las características de la tabla Delta?
Dado que las características de la tabla Delta representan protocolos de lectura y escritura, deben estar completamente ausentes del registro de transacciones para la eliminación completa. La eliminación de una característica se produce en dos fases y requiere tiempo para transcurrir antes de la finalización. Los detalles de la eliminación de características varían según la característica, pero en la sección siguiente se proporciona información general.
Preparación para quitar una característica de tabla
Durante la primera fase, el usuario se prepara para quitar la característica de tabla. A continuación se describe lo que sucede durante esta fase:
- El usuario ejecuta el comando
DROP FEATURE
. - Las propiedades de tabla que habilitan específicamente una característica de tabla tienen valores establecidos para deshabilitar la característica.
- Las propiedades de la tabla que controlan los comportamientos asociados con la característica eliminada tienen opciones establecidas en valores predeterminados previos a la introducción de la característica.
- Según sea necesario, los archivos de datos y metadatos se vuelven a escribir respetando las propiedades actualizadas de la tabla.
- El comando termina de ejecutarse y devuelve un mensaje de error que informa al usuario de que debe esperar 24 horas para continuar con la eliminación de características.
Después de deshabilitar primero 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.
Nota:
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 completar el paso de degradación final, los clientes delta no pueden leer la tabla que no reconocen la característica de la tabla.
Degradación del protocolo y colocación de una característica de tabla
Para quitar la característica de tabla, debe quitar todo el historial de transacciones asociado a la característica y degradar el protocolo.
- Después de pasar al menos 24 horas, el usuario vuelve a ejecutar el comando
DROP FEATURE
con la cláusulaTRUNCATE HISTORY
. - El cliente confirma que ninguna transacción en el umbral de retención especificado usa la característica de tabla y a continuación, trunca el historial de tablas a esa retención.
- El protocolo se degrada y quita la característica de tabla.
- Si las características de tabla presentes en la tabla se pueden representar mediante una versión de protocolo heredada,
minReaderVersion
yminWriterVersion
para la tabla se degradan a la versión más baja que admite exactamente todas las características restantes que usa la tabla Delta.
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 quitar una característica de tabla Delta, no tiene acceso al historial de tablas ni al viaje en el tiempo.
Consulte ¿Cómo administra Azure Databricks la compatibilidad de características de Delta Lake?.