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.
Los protocolos de tabla de Delta Lake especifican qué características debe admitir un cliente para leer o escribir una tabla. En esta página se tratan las versiones de protocolo, las características de tabla, los requisitos de compatibilidad y cómo Azure Databricks administra las actualizaciones de protocolo. Consulte también Revisar los detalles de la tabla con detalles de descripción.
Protocolo de tabla y compatibilidad
Cada tabla de Delta Lake tiene una especificación de protocolo que indica el conjunto de funcionalidades necesarias para leer y escribir en la tabla. Las aplicaciones usan la especificación de protocolo para determinar si pueden admitir todas las características que usa la tabla. Si una aplicación no puede admitir una característica en el protocolo actual de una tabla, esa aplicación no puede leer ni escribir esa tabla.
La mayoría de las nuevas funcionalidades de Delta Lake requieren que actualice el protocolo de tabla.
En la tabla siguiente se enumeran los términos clave que describen los protocolos de Delta Lake:
| Término | Description |
|---|---|
| Cliente de Delta Lake | Cualquier sistema que lea o escriba en una tabla de Delta Lake. |
| Lectura del protocolo | Especifica la compatibilidad necesaria para que un cliente de Delta Lake lea una tabla. |
| Escribir protocolo | Especifica la compatibilidad necesaria para que un cliente de Delta Lake escriba en una tabla. |
minReaderVersion |
Valor entero del protocolo de lectura. Los valores válidos son 1, 2 o 3. |
minWriterVersion |
Valor entero del protocolo de escritura. Los valores válidos son enteros 2 a través de 7. |
| Función de tabla | Alternativa específica a las versiones de protocolo usadas cuando minReaderVersion = 3 y minWriterVersion = 7. Las características de la tabla corresponden a las características opcionales habilitadas de Delta Lake. |
| Función de escritor | Una característica de tabla que requiere compatibilidad con el cliente de escritura, pero que no bloquea el acceso de solo lectura. |
| Función de lectura | Una característica de tabla que requiere compatibilidad con el cliente de lectura y escritura. Consulte Versiones de protocolo y características de tabla. |
Los protocolos de escritura y las características de escritura solo afectan a la compatibilidad con los clientes de escritura, lo que permite el acceso de solo lectura a la tabla desde cargas de trabajo heredadas.
No todas las características de Delta Lake son compatibles entre sí.
Algunas características de tabla no se pueden quitar una vez habilitadas. Consulte Eliminar una característica de tabla de Delta Lake y degradar el protocolo de tabla.
Versiones de protocolo y características de tabla
Todas las tablas de Delta Lake incluyen una versión de protocolo basada en enteros representada por minReaderVersion y minWriterVersion. Cada versión agrupa varias características y las características se acumulan entre versiones. Para cumplir con el protocolo Delta Lake, los clientes deben implementar compatibilidad con todas las características de una versión determinada, incluidas todas las características publicadas anteriormente.
En Databricks Runtime 12.2 LTS y versiones posteriores, las características de tabla reemplazan el protocolo basado en enteros por marcas granulares que indican qué características usa una tabla. Esto permite comprobaciones de compatibilidad más precisas entre clientes y tablas.
Las características del sistema de escritura de tablas afectan a la forma en que se escriben los datos.
minWriterVersion=7 Requieren pero no bloquean los clientes de lector.
Las características del lector de tablas afectan a la forma en que se leen los datos. Todas las características del lector también son características de escritura y requieren minReaderVersion=3 y minWriterVersion=7. Un cliente no puede escribir en una tabla que no pueda leer.
Cuando las características de la tabla están habilitadas, aparecen en el protocolo como readerFeatures o writerFeatures. Delta Lake resuelve el protocolo de tabla en la versión más baja que admite todas las características habilitadas. Consulte Protocolo más bajo posible.
Note
Azure Databricks incluye compatibilidad parcial no importante con las características de tabla en todas las versiones admitidas de Databricks Runtime. Los clientes de OSS Delta Lake eligen cómo implementar la compatibilidad con características dadas.
Cambios en el protocolo
El protocolo de una tabla cambia en las condiciones siguientes:
- Si se habilita una nueva característica, se actualiza el protocolo.
- Si se quita una característica de tabla, el protocolo se degrada.
Desactivar una característica de tabla no da lugar a una degradación del protocolo. Debe quitar la característica para quitarla completamente del protocolo. No todas las funcionalidades de la tabla se pueden quitar. Consulte Eliminar una característica de tabla de Delta Lake y degradar el protocolo de tabla.
Todas las operaciones de cambio de protocolo entran en conflicto con escrituras simultáneas. Las lecturas en streaming fallan cuando encuentran un commit que cambia los metadatos de la tabla. Para continuar, reinicie las secuencias afectadas. Para conocer los métodos recomendados, consulte Consideraciones de producción para Structured Streaming.
Note
Databricks recomienda que nunca modifique directamente las propiedades de las minReaderVersion tablas y minWriterVersion . Cambiar estas propiedades no impide las actualizaciones del protocolo y establecerlas en un valor inferior no degrada la tabla. Consulte Eliminar una característica de tabla de Delta Lake y degradar el protocolo de tabla.
¿Qué desencadena una actualización de protocolo?
Al habilitar una característica, el protocolo de tabla se actualiza automáticamente.
Las actualizaciones de protocolo se desencadenan de las maneras siguientes:
- Habilite automáticamente en función de la sintaxis usada en
CREATEinstrucciones oALTER. Por ejemplo,CLUSTER BYen unaCREATE TABLEinstrucción habilita automáticamente la agrupación en clústeres líquidos yGENERATED ALWAYS AShabilita las columnas generadas. - Habilite explícitamente a través de las propiedades de la tabla. Por ejemplo, la configuración
'delta.enableDeletionVectors' = truehabilita vectores de eliminación. - La habilitación de una característica podría habilitar automáticamente las características necesarias. Por ejemplo, habilitar UniForm habilita automáticamente la asignación de columnas y habilita automáticamente la agrupación en clústeres líquidos habilita el punto de control V2. Revise la documentación de Azure Databricks pertinente para determinar qué características de tabla requiere una característica determinada.
Las características del lector actualizan los protocolos de lectura y escritura. Por ejemplo, la asignación de columnas es una característica de lector y requiere actualizar ambos protocolos porque los datos se almacenan de forma diferente en el almacenamiento.
Las características del escritor, como CHECK restricciones, solo actualizan el protocolo de escritura.
Advertencia
La mayoría de las actualizaciones de versión de protocolo son irreversibles y pueden interrumpir los lectores de tablas, escritores o ambos existentes de Delta Lake. Actualice tablas específicas solo cuando sea necesario y compruebe que todas las herramientas de producción actuales y futuras admiten la nueva versión del protocolo.
Las degradaciones de protocolo están disponibles para algunas características. Consulte Eliminar una característica de tabla de Delta Lake y degradar el protocolo de tabla.
Protocolo más bajo posible
Delta Lake resuelve el protocolo de tabla en la versión más baja que admite todas las características habilitadas. Esto solo puede reducir minReaderVersion o minWriterVersion, nunca elevarlos. Las características de tabla nunca se quitan automáticamente. Use DROP FEATURE para quitar una característica de tabla del protocolo.
Si todas las características habilitadas son totalmente compatibles con una versión de protocolo basada en enteros inferior, la tabla podría revertir a esa versión y quitar readerFeatures o writerFeatures desde el protocolo. Esto no deshabilita ninguna característica. Las versiones de protocolo inferiores aumentan la compatibilidad porque todos los clientes deben respetarlos.
compatibilidad de Azure Databricks y Databricks Runtime
Azure Databricks presenta compatibilidad con las nuevas características de Delta Lake en las versiones de Databricks Runtime:
- Las tablas escritas por una versión anterior de Databricks Runtime tienen compatibilidad completa de lectura y escritura en versiones posteriores de Databricks Runtime.
- Las tablas escritas por una versión superior de Databricks Runtime podrían usar características de tabla no admitidas en versiones inferiores de Databricks Runtime.
- Algunas características permiten escrituras de versiones inferiores de Databricks Runtime sin aplicar completamente todas las optimizaciones para la característica habilitada.
Si solo usa tablas de Delta Lake a través de Azure Databricks, solo tiene que realizar un seguimiento de la compatibilidad con características mediante los requisitos mínimos de Databricks Runtime. Si lee o escribe tablas de sistemas externos, debe comprobar que esos clientes admiten las características de tabla habilitadas en las tablas.
Compatibilidad con características de tabla con copia de seguridad
En Databricks Runtime 12.2 LTS y versiones posteriores, las características de tabla reemplazaron el protocolo basado en enteros por marcas granulares que indican qué características usa una tabla.
Azure Databricks tiene compatibilidad con características de tabla con backported a Databricks Runtime 11.3 LTS y versiones posteriores, en lugar de admitir solo versiones de protocolo entero, pero solo para las características que ya se admiten en esa versión.
Por ejemplo, puede leer y escribir en una tabla con columnas generadas habilitadas mediante características de tabla en Databricks Runtime 9.1 LTS. Sin embargo, no puede usar Databricks Runtime 9.1 LTS para leer y escribir en una tabla con columnas de identidad habilitadas mediante características de tabla porque las columnas de identidad requieren Databricks Runtime 10.4 LTS y versiones posteriores.
Al usar características de tabla con compatibilidad con copia de seguridad, es posible que algunas operaciones disponibles en una versión determinada de Databricks Runtime no estén disponibles en la versión correspondiente de Delta Lake del sistema operativo. Si la arquitectura incluye clientes de OSS Delta Lake, pruebe la compatibilidad antes de habilitar las características de tabla en las tablas de producción.
Características de Delta Lake y versiones necesarias de Databricks Runtime
En la tabla siguiente se muestra la versión más baja de Databricks Runtime con compatibilidad completa para cada característica, de modo que se admiten todas las funcionalidades disponibles con carácter general para lecturas y escrituras.
| Feature | Requiere Databricks Runtime 12.1, o cualquier versión posterior. | Documentation |
|---|---|---|
CHECK restricciones |
Todas las versiones admitidas de Databricks Runtime |
CHECK restricción |
| Cambio de fuente de distribución de datos | Todas las versiones admitidas de Databricks Runtime | Uso de la fuente de distribución de datos modificados en Azure Databricks |
| Columnas generadas | Todas las versiones admitidas de Databricks Runtime | Columnas generadas por Delta Lake |
| Asignación de columnas | Todas las versiones admitidas de Databricks Runtime | Cambio de nombre y eliminación de columnas con la asignación de columnas de Delta Lake |
| Columnas de identidad | Todas las versiones admitidas de Databricks Runtime | Columnas de identidad |
| Características de la tabla | Todas las versiones admitidas de Databricks Runtime | Versiones de protocolo y características de tabla |
| Vectores de eliminación | Todas las versiones admitidas de Databricks Runtime | Vectores de eliminación en Databricks |
| TimestampNTZ | Databricks Runtime 13.3 LTS |
TIMESTAMP_NTZ tipo |
| Uniforme | Databricks Runtime 13.3 LTS | Leer tablas de Delta Lake con clientes de Respectal mediante UniForm |
| Agrupación en clústeres líquidos | Databricks Runtime 13.3 LTS | Utilizar agrupación líquida para tablas |
| Seguimiento de filas | Databricks Runtime 14.3 LTS | Seguimiento de filas en Azure Databricks |
| Ampliación de tipos | Databricks Runtime 15.4 LTS | Ampliación de tipos |
| Variant | Databricks Runtime 15.4 LTS | Compatibilidad con tipos de variante para Apache Iceberg y Delta Lake |
| Collations | Databricks Runtime 16.1 | Compatibilidad con las intercalaciones para Delta Lake |
| Puntos de control protegidos | Databricks Runtime 16.3 | Quitar una característica de tabla de Delta Lake y degradar el protocolo de tabla |
| Confirmaciones de catálogo | Databricks Runtime 16.4 LTS | Confirmaciones de catálogo |
Ver las Notas de la versión de Databricks Runtime: versiones y compatibilidad.
Note
Las canalizaciones declarativas de Spark de Lakeflow y Databricks SQL actualizan automáticamente los entornos en tiempo de ejecución con versiones periódicas para admitir nuevas características. Consulte las notas de la versión de Lakeflow Spark Declarative Pipelines y el proceso de actualización de la versión, además de las notas de la versión de Databricks SQL.
Características por versión de protocolo
Note
Para obtener información sobre la compatibilidad con Databricks Runtime, consulte compatibilidad con Databricks Runtime y Azure Databricks.
Delta Lake utiliza valores separados minReaderVersion y minWriterVersion para especificar capacidades de protocolo. El protocolo Delta Lake de código abierto se ha estandarizado en las características de la tabla, pero algunos clientes siguen usando el control de versiones de protocolo heredado. Dado que es posible que algunos clientes no admitan todas las características, Databricks recomienda comprobar con la documentación del cliente y probar la compatibilidad antes de habilitar nuevas características en tablas de producción.
Apache Iceberg utiliza una única format-version en lugar de versiones de lector y escritor independientes. Una versión de formato de Iceberg indica qué características están disponibles, pero no exige su uso. Las características son opcionales, excepto el seguimiento de filas, que es obligatorio en formato versión 3. Cuando una característica muestra N/A en la columna Incremental, se trata de una característica específica de Delta sin un equivalente directo de Incremental.
En la siguiente tabla se enumeran los requisitos de versión del protocolo para las características de la tabla Delta Lake y Apache Iceberg. El tipo de característica indica si una característica debe respetarse solo para escrituras o para ambas lecturas y escrituras.
| Feature | Delta minWriterVersion |
Delta minReaderVersion |
Iceberg format-version |
Tipo de característica |
|---|---|---|---|---|
| Funcionalidad básica | 2 | 1 | 1 | Writer |
CHECK Restricciones |
3 | 1 | N/A | Writer |
| Cambio de fuente de distribución de datos | 4 | 1 | N/A | Writer |
| Columnas generadas | 4 | 1 | N/A | Writer |
| Asignación de columnas | 5 | 2 | N/A | Lector y escritor |
| Columnas de identidad | 6 | 1 | N/A | Writer |
| Seguimiento de filas | 7 | 1 | 3 | Writer |
| Vectores de eliminación | 7 | 3 | 3 | Lector y escritor |
| Marca de tiempoNTZ | 7 | 3 | 1 | Lector y escritor |
| Agrupación en clústeres líquidos | 7 | 3 | 1 | Lector y escritor (1) |
| Lectores de Iceberg (UniForm) | 7 | 2 | N/A | Escritor (2) |
| Ampliación de tipos | 7 | 3 | N/A | Lector y escritor |
| Variant | 7 | 3 | 3 | Lector y escritor |
| Fragmentación de variantes | 7 | 3 | 3 | Lector y escritor |
| Colaciones | 7 | 3 | N/A | Lector y escritor |
| Puntos de control protegidos | 7 | 1 | N/A | Writer |
| Confirmaciones de catálogo | 7 | 3 | N/A | Lector y escritor |
(1): La agrupación en clústeres líquidos implementa la creación de particiones ocultas.