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:

Conferencia 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 Operaciones de escritura optimizadas para 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.
Tipo de datos: Boolean
Predeterminado: true
delta.checkpoint.writeStatsAsStruct
true para que Delta Lake escriba en los puntos de control estadísticas de archivo con formato de estructura para la columna stats_parsed y escriba valores de partición como formato de estructura para partitionValues_parsed.
Tipo de datos: Boolean
Predeterminado: true
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 la tabla Delta y las columnas de Parquet correspondientes que usan otros nombres.
Consulte Cambio de nombre y eliminación de columnas con la asignación de columnas de Delta Lake.
Nota: habilitar delta.columnMapping.mode realiza dicha habilitación automáticamente
delta.randomizeFilePrefixes.
Tipo de datos: DeltaColumnMappingMode
Predeterminado: none
delta.dataSkippingNumIndexedCols
El número de columnas de Delta Lake de las que recopilar estadísticas para 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 en Delta Lake.
Tipo de datos: Int
Predeterminado: 32
delta.dataSkippingStatsColumns
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 en 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 utiliza para prevenir fallos en lectores obsoletos después de compactaciones o reescritura de particiones.
Este valor debe ser lo suficientemente grande como para asegurarse de que:
  • Es mayor que la máxima duración posible de un trabajo si se ejecuta VACUUM cuando hay lectores o escritores simultáneos que acceden a la tabla Delta.
  • Si ejecuta una consulta de streaming que lee de la tabla, esa consulta no se detiene durante más tiempo que este valor. De lo contrario, es posible que la consulta no pueda reiniciarse, ya que todavía debe leer archivos antiguos.

Consulte 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 cambiados.
Consulte Habilitación de la fuente de distribución de datos modificados.
Tipo de datos: Boolean
Predeterminado: 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.enableTypeWidening
true para habilitar la ampliación de tipos.
Consulte Ampliación de tipos.
Tipo de datos: Boolean
Predeterminado: false
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 anulan 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.
Consulte 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 no configurar manualmente esta propiedad.
Consulte Compatibilidad y protocolosde 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 no configurar manualmente esta propiedad.
Consulte Compatibilidad y protocolosde 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 menor duración dentro de la que 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. Para más información, consulte Escrituras de tabla idempotentes en foreachBatch.
Tipo de datos: CalendarInterval
Valor predeterminado: (ninguno)
delta.targetFileSize
El tamaño de archivo objetivo en bytes o en unidades mayores para el ajuste 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 configurar nunca a tamaños de archivo más pequeños, 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)