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.
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áticamentedelta.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:
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) |