Compartir a través de


Referencia de propiedades de tabla delta

Delta Lake reserva las propiedades de la tabla delta a partir de delta.. Estas propiedades pueden tener significados específicos y afectar a los comportamientos durante su configuración.

Nota:

Todas las operaciones que establecen o actualizan las propiedades de la tabla entran en conflicto con otras operaciones de escritura simultáneas, lo que provoca un error. Databricks recomienda modificar una propiedad de una tabla solo cuando no haya ninguna operación de escritura simultánea en la tabla.

¿Cómo interactúan las propiedades de tabla y las propiedades de SparkSession?

Las propiedades de tablas Delta se establecen por tabla. Si se establece una propiedad en una tabla, esta será la configuración que se siga de manera predeterminada.

Algunas propiedades de tabla tienen configuraciones de SparkSession asociadas que siempre tendrán prioridad sobre las propiedades de la tabla. Algunos ejemplos incluyen las configuraciones spark.databricks.delta.autoCompact.enabled y spark.databricks.delta.optimizeWrite.enabled, que activan la compactación automática y las escrituras optimizadas a nivel de SparkSession en lugar de a nivel de tabla. Databricks recomienda usar configuraciones con ámbito de tabla para la mayoría de las cargas de trabajo.

Para cada propiedad de tablas Delta, es posible establecer un valor predeterminado para las nuevas tablas mediante una configuración de SparkSession, reemplazando el valor predeterminado integrado. Esta configuración solo afectará a las tablas nuevas y no invalidará ni reemplazará las propiedades establecidas en las tablas existentes. El prefijo que se usa en SparkSession es diferente de las configuraciones que se usan en las propiedades de la tabla, tal y como se muestra en la tabla siguiente:

Configuración de Delta Lake Configuración de SparkSession
delta.<conf> spark.databricks.delta.properties.defaults.<conf>

Por ejemplo, para establecer la propiedad delta.appendOnly = true para todas las tablas nuevas de Delta Lake que se han creado en una sesión, establezca lo siguiente:

SET spark.databricks.delta.properties.defaults.appendOnly = true

Para modificar las propiedades de tabla de las tablas existentes, use SET TBLPROPERTIES.

Propiedades de tabla delta

Entre las propiedades disponibles de la tabla delta se incluyen:

Propiedad
delta.appendOnly

true para que esta tabla Delta sea de solo anexión. Si es de solo anexión, no se pueden eliminar los registros existentes ni se pueden actualizar los valores existentes.

Consulte Referencia de propiedades de tabla Delta.

Tipo de datos: Boolean

Predeterminado: false
delta.autoOptimize.autoCompact

auto para que Delta Lake optimice automáticamente el diseño de los archivos de esta tabla Delta.

Consulte Compactación automática de Delta Lake en Azure Databricks.

Tipo de datos: Boolean

Valor predeterminado: (ninguno)
delta.autoOptimize.optimizeWrite

true para que Delta Lake optimice automáticamente el diseño de los archivos de esta tabla Delta durante las operaciones de escritura.

Consulte Escritura optimizada de Delta Lake en Azure Databricks.

Tipo de datos: Boolean

Valor predeterminado: (ninguno)
delta.checkpoint.writeStatsAsJson

true para que Delta Lake escriba estadísticas de archivo en puntos de control en formato JSON para la columna stats.

Consulte Administración de estadísticas de nivel de columna en puntos de control.

Tipo de datos: Boolean

Predeterminado: true
delta.checkpoint.writeStatsAsStruct

true Para que Delta Lake escriba estadísticas de archivo en puntos de control en formato de estructura para la columna stats_parsed y para escribir valores de partición como una estructura para partitionValues_parsed.

Consulte Administración de estadísticas de nivel de columna en puntos de control.

Tipo de datos: Boolean

Valor predeterminado: (ninguno)
delta.checkpointPolicy

classic para los puntos de control clásicos de Delta Lake. v2 para los puntos de control de la versión 2.

Consulte Compatibilidad para tablas con agrupación en clústeres líquidos.

Tipo de datos: String

Predeterminado: classic
delta.columnMapping.mode

Indica si la asignación de columnas está habilitada para las columnas de tabla Delta y las columnas de Parquet correspondientes que usan nombres diferentes.

Consulte Cambio de nombre y eliminación de columnas con la asignación de columnas de Delta Lake.

Nota: habilitar delta.columnMapping.mode automáticamente habilitará
delta.randomizeFilePrefixes.

Tipo de datos: DeltaColumnMappingMode

Predeterminado: none
delta.dataSkippingNumIndexedCols

Número de columnas de Delta Lake para recopilar estadísticas sobre la omisión de datos. Un valor de -1 significa que se han recopilado estadísticas de todas las columnas.

Consulte Omisión de datos para Delta Lake.

Tipo de datos: Int

Opción predeterminada: 32
delta.dataSkippingStatsColumns

Una lista de nombres de columnas separadas por comas, en las que Delta Lake recopila estadísticas para mejorar la funcionalidad de omisión de datos. Este propiedad tiene prioridad sobre delta.dataSkippingNumIndexedCols.

Consulte Omisión de datos para Delta Lake.

Tipo de datos: String

Valor predeterminado: (ninguno)
delta.deletedFileRetentionDuration

La duración más corta para que Delta Lake mantenga los archivos de datos eliminados lógicamente antes de eliminarlos físicamente. Esto se usa para evitar errores en lectores obsoletos después de sobrescribir compactaciones o particiones.

Este valor debe ser lo suficientemente grande como para asegurarse de que:

- Es mayor que la duración posible más larga de un trabajo si se ejecuta VACUUM cuando hay lectores o escritores simultáneos que acceden a la tabla Delta.
- Si ejecutas una consulta de streaming que lee datos de la tabla, esa consulta no se detiene durante más tiempo que lo establecido en este valor. De lo contrario, es posible que la consulta no pueda reiniciarse, ya que todavía debe leer archivos antiguos.

Vea Configuración de la retención de datos para las consultas de viaje en el tiempo.

Tipo de datos: CalendarInterval

Predeterminado: interval 1 week
delta.enableChangeDataFeed

true para habilitar la fuente de distribución de datos modificados.

Consulte Habilitación de la fuente de distribución de datos modificados.

Tipo de datos: Boolean

Opción predeterminada: false
delta.enableDeletionVectors

true para habilitar los vectores de eliminación y la E/S predictiva para las actualizaciones.

Consulte ¿Qué son los vectores de eliminación?.

Tipo de datos: Boolean

Valor predeterminado: depende de la configuración del administrador del área de trabajo y de la versión de Databricks Runtime. Vea Habilitación automática de vectores de eliminación
delta.isolationLevel

Es el nivel en el que debe aislarse una transacción de las modificaciones que realicen las transacciones simultáneas.

Los valores válidos son Serializable y WriteSerializable.

Consulte Niveles de aislamiento y conflictos de escritura en Azure Databricks.

Tipo de datos: String

Predeterminado: WriteSerializable
delta.logRetentionDuration

Cuánto tiempo se conserva el historial de una tabla Delta. VACUUM las operaciones invalidan este umbral de retención.

Cada vez que se escribe un punto de control, Delta Lake limpia automáticamente las entradas de registros anteriores al intervalo de retención. Si establece esta configuración en un valor lo suficientemente grande, se conservarán muchas entradas de registros. Esto no debería afectar al rendimiento, ya que las operaciones en el registro son de tiempo constante. Las operaciones en el historial son paralelas, pero serán más costosas a medida que aumente el tamaño del registro.

Vea Configuración de la retención de datos para las consultas de viaje en el tiempo.

Tipo de datos: CalendarInterval

Predeterminado: interval 30 days
delta.minReaderVersion

Es la versión mínima necesaria del lector de protocolo para un lector que permite leer esta tabla Delta.

Databricks recomienda configurar manualmente esta propiedad.

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

Tipo de datos: Int

Predeterminado: 1
delta.minWriterVersion

Es la versión mínima necesaria del lector de protocolo para un escritor que permite escribir en esta tabla Delta.

Databricks recomienda configurar manualmente esta propiedad.

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

Tipo de datos: Int

Predeterminado: 2
delta.randomizeFilePrefixes

true para que Delta Lake genere un prefijo aleatorio para una ruta de acceso de archivo en lugar de la información de partición.

Tipo de datos: Boolean

Predeterminado: false
delta.randomPrefixLength

Cuando delta.randomizeFilePrefixes se establece en true, es el número de caracteres que Delta Lake genera para prefijos aleatorios.

Tipo de datos: Int

Predeterminado: 2
delta.setTransactionRetentionDuration

La duración más corta dentro de la cual las nuevas instantáneas conservarán los identificadores de transacción (por ejemplo, SetTransaction). Cuando una nueva instantánea ve un identificador de transacción anterior o igual que la duración especificada por esta propiedad, la instantánea considera que ha expirado y lo omite. El identificador SetTransaction se usa al hacer que las escrituras sean idempotentes. Consulte Escrituras de tabla idempotente en foreachBatch para más información.

Tipo de datos: CalendarInterval

Valor predeterminado: (ninguno)
delta.targetFileSize

El tamaño del archivo de destino en se visualiza bytes o en unidades superiores para la optimización de archivos. Por ejemplo,
104857600 (bytes) o 100mb.

Consulte Configuración de Delta Lake para controlar el tamaño del archivo de datos.

Tipo de datos: String

Valor predeterminado: (ninguno)
delta.tuneFileSizesForRewrites

true para usar siempre tamaños de archivo inferiores en todas las operaciones de optimización del diseño de los datos en la tabla Delta.

false para no ajustar nunca los tamaños de archivo inferiores; es decir, evitar que se active la detección automática.

Consulte Configuración de Delta Lake para controlar el tamaño del archivo de datos.

Tipo de datos: Boolean

Valor predeterminado: (ninguno)