Control de versiones de tabla

El registro de transacciones de una tabla Delta contiene información de control de versiones que admite la evolución de Delta Lake. Delta Lake realiza un seguimiento de las versiones mínimas de lector y escritor por separado.

Delta Lake garantiza la compatibilidad con versiones anteriores. Una versión superior de Databricks Runtime siempre puede leer los datos escritos por una versión inferior.

En ocasiones, Delta Lake interrumpirá la compatibilidad con versiones adelantada. Es posible que Databricks Runtime versiones inferiores de no puedan leer y escribir datos escritos por una versión superior de Databricks Runtime. Si intenta leer y escribir en una tabla con una versión de Databricks Runtime demasiado baja, se producirá un error que le avisará de que necesita actualizar.

Al crear una tabla, Delta Lake elige la versión mínima necesaria del protocolo en función de las características de la tabla, como las propiedades de esquema o tabla. También puede establecer las versiones de protocolo predeterminadas estableciendo las SQL predeterminadas:

  • spark.databricks.delta.properties.defaults.minWriterVersion = 2 (valor predeterminado)
  • spark.databricks.delta.properties.defaults.minReaderVersion = 1 (valor predeterminado)

Para actualizar una tabla a una versión de protocolo más reciente, use el DeltaTable.upgradeTableProtocol método :

Python

from delta.tables import DeltaTable
delta = DeltaTable.forPath(spark, "path_to_table") # or DeltaTable.forName
delta.upgradeTableProtocol(1, 3) # upgrades to readerVersion=1, writerVersion=3

Scala

import io.delta.tables.DeltaTable
val delta = DeltaTable.forPath(spark, "path_to_table") // or DeltaTable.forName
delta.upgradeTableProtocol(1, 3) // upgrades to readerVersion=1, writerVersion=3

Importante

Las actualizaciones de protocolo son irreversibles, por lo que se recomienda actualizar tablas específicas solo cuando sea necesario, como participar en nuevas características de Delta Lake.