Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se describe cómo quitar características de las tablas en Delta Lake y cómo degradar las versiones de protocolo.
Esta funcionalidad está disponible en Databricks Runtime 16.3 y versiones posteriores. No se pueden quitar todas las características de la tabla Delta. Consulte ¿Qué características de la tabla Delta se pueden quitar?.
Solo debe usar DROP FEATURE
para admitir la compatibilidad con versiones anteriores de Databricks Runtime, Delta Sharing o clientes externos de lector o escritor de Delta Lake.
Nota:
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
Para quitar una característica de tabla, use la sintaxis siguiente:
ALTER TABLE <table-name> DROP FEATURE <feature-name>
Debe usar Databricks Runtime 16.3 o superior y disponer de privilegios de MODIFY
en la tabla Delta de destino. Únicamente puede eliminar una funcionalidad de tabla con cada comando DROP FEATURE
.
Consulte ALTER TABLE para obtener más detalles.
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 recomendados, consulte Consideraciones de producción para Structured Streaming.
¿Qué ocurre cuando se quita una característica de tabla?
Al eliminar una función de tabla, Delta Lake confirma de forma atómica los cambios en la tabla para realizar lo siguiente:
- Deshabilite las propiedades de la tabla que usan la característica de tabla.
- Vuelva a escribir los archivos de datos según sea necesario para quitar todos los rastros de la funcionalidad de tabla de los archivos de datos que sustentan la tabla de la versión actual.
- Cree un conjunto de puntos de control protegidos que permitan a los clientes lectores interpretar 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.
¿Cuál es la funcionalidad de la checkpointProtection
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 siempre debe ser legible por más clientes lectores. Esto se debe a que el protocolo de la tabla ahora refleja que la compatibilidad con la característica eliminada ya no es necesaria para leer la tabla. Los puntos de control protegidos y la checkpointProtection
característica realizan lo siguiente:
- Los clientes lectores que entienden la función de eliminación de tablas pueden acceder a todo el historial de tablas disponible.
- Los clientes lectores que no admiten la funcionalidad de tabla eliminada solo necesitan leer el historial de tablas a partir de la versión degradada del protocolo.
- Los clientes de escritura no reescriben los puntos de control antes de la degradación del protocolo.
- Las operaciones de mantenimiento de tablas respetan los requisitos establecidos por
checkpointProtection
, que marcan los puntos de control de degradación del protocolo como protegidos.
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 ni escrituras en Azure Databricks.
La función de tabla checkpointProtection
no debe bloquear el acceso 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.
¿Qué características de la tabla Delta se pueden quitar?
Puede anular las siguientes características de la tabla Delta:
-
checkConstraints
. Consulte Restricciones en Azure Databricks. -
collations-preview
. Consulte Compatibilidad de las intercalaciones con Delta Lake. -
columnMapping
. Consulte Cambiar nombre y quitar columnas con la asignación de columnas de Delta Lake. -
deletionVectors
. Consulte ¿Qué son los vectores de eliminación?. -
typeWidening
. Consulte Ampliación de tipos. -
v2Checkpoint
. Consulte Compatibilidad para tablas con agrupación en clústeres líquidos. -
checkpointProtection
. Consulte ¿Qué es la característica de tablacheckpointProtection
?.
No se pueden quitar otras características de la tabla Delta.
Importante
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 funcionalidades de Delta Lake permiten varias características de tabla. Algunas características de tabla dependen de otras características de tabla y podrían bloquear la eliminación de características de tabla dependientes. Dado que algunas características de tabla no se pueden quitar, esto significa que no se puede revertir la habilitación de algunas características de Delta Lake.
Databricks recomienda probar siempre las cargas de trabajo y los sistemas dependientes para que sean compatibles con nuevas funcionalidades antes de habilitar la funcionalidad que actualiza los protocolos de lectura o escritura para los datos de producción.
Protocolos de tabla de degradación completa para clientes heredados
Si las integraciones con clientes externos de Delta Lake requieren operaciones de escritura que no admiten la checkpointProtection
característica de tabla, debe usar TRUNCATE HISTORY
para eliminar completamente todos los rastros de las características de tabla deshabilitadas y degradar completamente el protocolo de tabla.
Databricks recomienda probar el comportamiento predeterminado para DROP FEATURE
antes de continuar con TRUNCATE HISTORY
. Al ejecutar TRUNCATE HISTORY
, se quita todo el historial de tablas superior a 24 horas.
La degradación de la tabla completa se produce en dos pasos que deben producirse al menos 24 horas de diferencia.
Paso 1: Prepárese para eliminar 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:
- Ejecute el
ALTER TABLE <table-name> DROP FEATURE <feature-name> TRUNCATE HISTORY
comando . - 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.
Paso 2: Degradar el protocolo y quitar una característica de tabla
Para quitar completamente todo el historial de transacciones asociado a la característica y degradar el protocolo:
- Después de pasar al menos 24 horas, ejecute el
ALTER TABLE <table-name> DROP FEATURE <feature-name> TRUNCATE HISTORY
comando . - 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 ese umbral.
- La característica de tabla se quita durante la degradación del protocolo.
- Si las características de la tabla que están presentes en la tabla se pueden representar mediante una versión de protocolo inferior, el
minReaderVersion
yminWriterVersion
para la tabla se retrogradan a la versión más baja que admite 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 usar este comando para degradar el protocolo de tabla, no tiene acceso al historial de tabla ni al viaje en el tiempo.
Consulte Compatibilidad y protocolos de características de Delta Lake.