¿Cómo administra Azure Databricks la compatibilidad de características de Delta Lake?

Delta Lake es un proyecto de código abierto independiente bajo la gobernanza de Linux Foundation. Databricks introduce la compatibilidad con las nuevas características y optimizaciones de Delta Lake que se basan en Delta Lake en las versiones de Databricks Runtime.

Las optimizaciones de Azure Databricks que aprovechan las características de Delta Lake respetan los protocolos usados en OSS Delta Lake por motivos de compatibilidad.

Muchas optimizaciones de Azure Databricks requieren habilitar las características de Delta Lake en una tabla. Las características de Delta Lake siempre son compatibles con versiones anteriores, por lo que las tablas escritas por una versión inferior de Databricks Runtime siempre se pueden leer y escribir mediante una versión superior de Databricks Runtime. La habilitación de algunas características interrumpe la compatibilidad con versiones posteriores con las cargas de trabajo que se ejecutan en una versión inferior de Databricks Runtime. Para las características que interrumpen la compatibilidad con versiones posteriores, debe actualizar todas las cargas de trabajo que hagan referencia a las tablas actualizadas para usar una versión compatible de Databricks Runtime.

Nota:

Puede eliminar deletionVectors y v2Checkpoint en Azure Databricks. Consulte Eliminación de características de una tabla Delta.

Importante

Todas las operaciones de cambio de protocolo 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.

¿Qué características de Delta Lake requieren actualizaciones de Databricks Runtime?

Las siguientes características de Delta Lake rompen la compatibilidad con versiones posteriores. Las características se habilitan tabla a tabla. En esta tabla se muestra la versión más baja de Databricks Runtime compatible con Azure Databricks.

Característica Requiere Databricks Runtime 12.1, o cualquier versión posterior. Documentación
CHECK constraints Databricks Runtime 9.1 LTS Establecimiento de una restricción CHECK en Azure Databricks
Cambio de fuente de distribución de datos Databricks Runtime 9.1 LTS Uso de la fuente de distribución de datos de cambios de Delta Lake en Azure Databricks
Columnas generadas Databricks Runtime 9.1 LTS Columnas generadas por Delta Lake
Asignación de columnas Databricks Runtime 10.4 LTS Cambio de nombre y eliminación de columnas con la asignación de columnas de Delta Lake
Columnas de identidad Databricks Runtime 10.4 LTS Uso de columnas de identidad en Delta Lake
Características de tabla Databricks Runtime 12.1 (sin soporte técnico) ¿Qué son las características de tabla?
Vectores de eliminación Databricks Runtime 12.1 (sin soporte técnico) ¿Qué son los vectores de eliminación?
TimestampNTZ Databricks Runtime 13.0 (sin soporte técnico) Tipo TIMESTAMP_NTZ
UniForm Databricks Runtime 13.2 (sin soporte técnico) Compatibilidad de Formato universal (UniForm) para Iceberg con tablas Delta
Agrupación en clústeres líquidos Databricks Runtime 13.3 LTS Uso de clústeres líquidos para tablas Delta

Ver las notas de la versión de Databricks Runtime versiones y compatibilidad.

Nota:

Delta Live Tables y Databricks SQL actualizan automáticamente los entornos en tiempo de ejecución con publicaciones regulares, con el fin de admitir nuevas características. Consulte Notas de la versión y el proceso de actualización de la versión de Delta Live Tables y Notas de la versión de Databricks.

¿Qué es una especificación de protocolos de tabla?

Cada tabla Delta tiene una especificación de protocolos que indica el conjunto de características que la tabla admite. Las aplicaciones que leen de la tabla o escriben en ella usan esta especificación para determinar si pueden controlar todas las características que la tabla admite. Si una aplicación no sabe cómo controlar una característica que aparece como compatible con el protocolo de una tabla, no podrá leer de esa tabla ni escribir en ella.

La especificación de protocolos se divide en dos componentes: protocolo de lectura y protocolo de escritura.

Advertencia

La mayoría de las actualizaciones de versión de protocolo son irreversibles y la actualización de la versión del protocolo podría interrumpir los lectores de tablas, escritores o ambos existentes de Delta Lake. Databricks recomienda que actualice tablas específicas solo cuando sea necesario, como por ejemplo para aceptar nuevas característica de Delta Lake. También debe comprobar que todas las herramientas de producción actuales y futuras admiten tablas de Delta Lake con la nueva versión del protocolo.

Las degradaciones de protocolo están disponibles para algunas características. Consulte Eliminación de características de una tabla Delta.

Protocolo de lectura

El protocolo de lectura enumera todas las características que admite una tabla y que cualquier aplicación debe conocer para leer la tabla correctamente. La actualización del protocolo de lectura de una tabla requiere que todas las aplicaciones de lectura admitan las características agregadas.

Importante

Todas las aplicaciones que escriban en una tabla Delta deben ser capacees de crear una instantánea de ella. Por lo tanto, las cargas de trabajo que escriben en tablas Delta deben respetar los requisitos de los protocolos de lectura y escritura.

Si encuentra un protocolo que no es compatible con una carga de trabajo en Azure Databricks, debe actualizar a un versión superior de Databricks Runtime que admita ese protocolo.

Protocolo de escritura

El protocolo de escritura enumera todas las características que admite una tabla y que cualquier aplicación debe conocer para escribir en la tabla correctamente. La actualización del protocolo de escritura de una tabla requiere que todas las aplicaciones de escritura admitan las características agregadas. No afecta a las aplicaciones de solo lectura, a menos que también se actualice el protocolo de lectura.

¿Qué protocolos se deben actualizar?

Algunas características requieren que se actualicen tanto el protocolo de lectura como el de escritura. Otras solo requieren que se actualice el protocolo de escritura.

Por ejemplo, la compatibilidad con restricciones de CHECK es una característica del protocolo de escritura: las aplicaciones de lectura son las únicas que deben conocer las restricciones de CHECK y aplicarlas.

Por el contrario, la asignación de columnas requiere que se actualicen los protocolos de lectura y escritura. Dado que los datos se almacenan de forma diferente en la tabla, las aplicaciones de lectura deben conocer la asignación de columnas para poder leerlos correctamente.

versiones mínimas de lector y escritor

Nota:

Debe actualizar explícitamente la versión del protocolo de tabla al habilitar la asignación de columnas.

Al habilitar las características delta en una tabla, el protocolo de tabla se actualiza automáticamente. Databricks recomienda cambiar las propiedades de la tabla minReaderVersion y minWriterVersion. El cambio de estas propiedades de tabla no impide la actualización del protocolo. Establecer estos valores en un valor inferior no degrada la tabla. Consulte Eliminación de características de una tabla Delta.

¿Qué son las características de tabla?

En Databricks Runtime 12.2 LTS y versiones posteriores, las características de la tabla delta Lake presentan marcas granulares que especifican qué características son compatibles con una tabla determinada. En Databricks Runtime 11.3 LTS y versiones posteriores, las características de Delta Lake se habilitaron en conjuntos denominados versiones de protocolo. Las características de tabla son las sucesoras de las versiones de protocolo y están diseñadas con el objetivo de mejorar la flexibilidad de los clientes que leen y escriben Delta Lake. Consulte ¿Qué es una versión del protocolo?.

Nota:

Las características de tabla tienen requisitos de versión de protocolo. Consulte Características por versión de protocolo.

Una característica de una tabla Delta es un marcador que indica que la tabla admite una característica determinada. Cada característica es una característica de protocolo de escritura (lo que significa que solo actualiza el protocolo de escritura) o una característica de protocolo de lectura y escritura (lo que significa que se actualizan los protocolos de lectura y escritura para habilitar la característica).

Para más información sobre las características de tabla admitidas en Delta Lake, consulte el protocolo Delta Lake.

¿Cambian las características de tabla cómo se habilitan las características de Delta Lake?

Si solo interactúa con tablas Delta a través de Azure Databricks, puede seguir realizando un seguimiento de la compatibilidad con las características de Delta Lake con los requisitos mínimos de Databricks Runtime. Azure Databricks admite la lectura de tablas Delta que se han actualizado a las características de tabla en todas las versiones de LTS de Databricks Runtime, siempre que esa versión admita todas las características que usa la tabla.

Si utiliza otros sistemas para leer y escribir en tablas Delta, es posible que deba tener en cuenta la forma en que las características de tabla afectan a la compatibilidad, ya que existe el riesgo de que el sistema no conozca las versiones del protocolo actualizadas.

Importante

Las características de tabla se introducen al formato de Delta Lake para la versión 7 del escritor y la versión 3 del lector. Azure Databricks tiene código que se ha aplicado a todas las versiones de Databricks Runtime LTS compatibles para agregar compatibilidad con las características de tabla, pero solo para la características que ya son compatibles con esa instancia de Databricks Runtime. Esto significa que, aunque puede optar por usar características de tabla para habilitar las columnas generadas y seguir trabajando con estas tablas en Databricks Runtime 9.1 LTS, las tablas con columnas de identidad habilitadas (lo que requiere Databricks Runtime 10.4 LTS) todavía no se admiten en ese entorno de Databricks Runtime.

¿Qué es una versión de protocolo?

Una versión de protocolo es un número de protocolo que indica una agrupación determinada de características de tabla. En Databricks Runtime 11.3 LTS y versiones posteriores, no puede habilitar las características de tabla individualmente. Las versiones de protocolo agrupan varias características.

Las tablas Delta especifican una versión de protocolo independiente para el protocolo de lectura y el protocolo de escritura. El registro de transacciones de una tabla Delta contiene información sobre el control de versiones del protocolo que admite la evolución de Delta Lake. Consulte Revisión de los detalles de la tabla de Delta Lake con los detalles descritos.

Las versiones del protocolo agrupan todas las características de los protocolos anteriores. Consulte Características por versión de protocolo.

Nota:

A partir de la versión 7 del escritor y la versión 3 del lector, Delta Lake ha introducido el concepto de características de tabla. El uso de las características de tabla le permite elegir habilitar solo las características compatibles con otros clientes del ecosistema de datos. Consulte ¿Qué son las características de tabla?

Características por versión de protocolo

La siguiente tabla muestra las versiones de protocolo mínimas necesarias para las características de Delta Lake.

Nota:

Si solo le preocupa la compatibilidad con Databricks Runtime, consulte ¿Qué características de Delta Lake requieren las actualizaciones de Databricks Runtime? Delta Sharing solo admite la lectura de tablas con características que requieren minReaderVersion = 1.

Característica minWriterVersion minReaderVersion Documentación
Funcionalidad básica 2 1 ¿Qué es Delta Lake?
CHECK constraints 3 1 Establecimiento de una restricción CHECK en Azure Databricks
Cambio de fuente de distribución de datos 4 1 Uso de la fuente de distribución de datos de cambios de Delta Lake en Azure Databricks
Columnas generadas 4 1 Columnas generadas por Delta Lake
Asignación de columnas 5 2 Cambio de nombre y eliminación de columnas con la asignación de columnas de Delta Lake
Columnas de identidad 6 2 Uso de columnas de identidad en Delta Lake
Lectura de características de tabla 7 1 ¿Qué son las características de tabla?
Escritura de características de tabla 7 3 ¿Qué son las características de tabla?
Vectores de eliminación 7 3 ¿Qué son los vectores de eliminación?
TimestampNTZ 7 3 Tipo TIMESTAMP_NTZ
Agrupación en clústeres líquidos 7 3 Uso de clústeres líquidos para tablas Delta
UniForm 7 2 Compatibilidad de Formato universal (UniForm) para Iceberg con tablas Delta