Condividi tramite


Riferimento delle proprietà Delta table

Delta Lake riserva le proprietà Delta table che iniziano con delta.. Queste proprietà possono avere significati specifici e influire sui comportamenti quando queste proprietà sono set.

Nota

Tutte le operazioni in cui le proprietà set o updatetable entrano in conflitto con altre operazioni di scrittura simultanee, causando il loro fallimento. Databricks consiglia di modificare una proprietà table solo quando non sono presenti operazioni di scrittura simultanee nel table.

Come interagiscono le proprietà table e le proprietà SparkSession?

Le proprietà delta table vengono set per table. Se una proprietà è set in un table, questa è l'impostazione seguita per impostazione predefinita.

Alcune proprietà table hanno associato configurazioni SparkSession che hanno sempre la precedenza sulle proprietà table. Alcuni esempi includono le configurazioni spark.databricks.delta.autoCompact.enabled e spark.databricks.delta.optimizeWrite.enabled, che attivano la compattazione automatica e le scritture ottimizzate a livello di SparkSession anziché a livello di table. Databricks consiglia di usare configurazioni con ambito tablenella maggior parte dei carichi di lavoro.

Per ogni proprietà Delta table è possibile set un valore predefinito per i nuovi tables utilizzando una configurazione SparkSession, sovrascrivendo il valore predefinito integrato. Questa impostazione influisce solo sui nuovi tables e non sovrascrive né sostituisce le proprietà set degli tablesesistenti. Il prefisso usato in SparkSession è diverso dalle configurazioni usate nelle proprietà table, come illustrato nella tableseguente:

Delta Lake conf SparkSession conf
delta.<conf> spark.databricks.delta.properties.defaults.<conf>

Ad esempio, per set la proprietà delta.appendOnly = true per tutti i nuovi tables Delta Lake creati in una sessione, set quanto segue:

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

Per modificare table proprietà di tablesesistenti, usare SET TBLPROPERTIES.

Proprietà di Delta table

Le proprietà delta table disponibili includono quanto segue:

Proprietà
delta.appendOnly

true per Delta table essere solo accodabile. Nel caso di solo accodamento, i record esistenti non possono essere eliminati e non si possono aggiornare gli values esistenti.

Vedere informazioni di riferimento sulle proprietà delta table.

Tipo di dati: Boolean

Impostazione predefinita: false
delta.autoOptimize.autoCompact

auto per Delta Lake di optimize automaticamente il layout dei file per questo Delta table.

Vedere Compattazione automatica per Delta Lake in Azure Databricks.

Tipo di dati: Boolean

Impostazione predefinita: (nessuna)
delta.autoOptimize.optimizeWrite

true per Delta Lake di optimize automaticamente il layout dei file per questo table Delta durante le operazioni di scrittura.

Si veda Scritture ottimizzate per Delta Lake in Azure Databricks.

Tipo di dati: Boolean

Impostazione predefinita: (nessuna)
delta.checkpoint.writeStatsAsJson

true per Delta Lake per scrivere statistiche sui file nei checkpoint in formato JSON per il statscolumn.

Visualizzare e gestire le statistiche al livello columnnei checkpoint.

Tipo di dati: Boolean

Impostazione predefinita: true
delta.checkpoint.writeStatsAsStruct

true affinché Delta Lake scriva statistiche sui file nei checkpoint in formato strutturato per il stats_parsedcolumn e scriva partitionvalues come struttura per partitionValues_parsed.

Vedere gestire le statistiche di livello columnnei checkpoint.

Tipo di dati: Boolean

Impostazione predefinita: (nessuna)
delta.checkpointPolicy

classic per i checkpoint Delta Lake classici. v2 per i checkpoint v2.

Consultare la compatibilità per tables con il clustering liquido.

Tipo di dati: String

Impostazione predefinita: classic
delta.columnMapping.mode

Indica se il mapping column è abilitato per Delta tablecolumns e il Parquet columns corrispondente che utilizza nomi diversi.

Vedere Rinominare ed eliminare columns con il mapping di Delta Lake column.

Nota: con l’abilitazione delta.columnMapping.mode si abilita automaticamente
delta.randomizeFilePrefixes.

Tipo di dati: DeltaColumnMappingMode

Impostazione predefinita: none
delta.dataSkippingNumIndexedCols

Numero di columns per Delta Lake per raccogliere statistiche sullo skipping dei dati. Un valore di -1 significa raccogliere statistiche per tutti i columns.

Vedere Skipping dei dati per Delta Lake.

Tipo di dati: Int

Impostazione predefinita: 32
delta.dataSkippingStatsColumns

Un list delimitato da virgole di nomi di column in cui Delta Lake raccoglie statistiche per migliorare la funzionalità di salto dei dati. Questa proprietà ha la precedenza su delta.dataSkippingNumIndexedCols.

Vedere Skipping dei dati per Delta Lake.

Tipo di dati: String

Impostazione predefinita: (nessuna)
delta.deletedFileRetentionDuration

La durata minima in cui Delta Lake conserva i file di dati eliminati logicamente prima di eliminarli fisicamente. Questo previene guasti nei lettori non aggiornati dopo le compattazioni o le sovrascritture partition.

Questo valore deve essere sufficientemente grande per garantire che:

- È maggiore della durata più lunga possibile di un'attività se si esegue VACUUM quando sono presenti lettori o scrittori simultanei che accedono a Delta table.
- Se si esegue una query di streaming che legge dalla table, tale query non si ferma per un periodo di tempo superiore a questo valore. In caso contrario, la query potrebbe non essere in grado di riavviare, perché deve comunque leggere i file precedenti.

Vedere Configurare la conservazione dei dati per le query di spostamento cronologico.

Tipo di dati: CalendarInterval

Impostazione predefinita: interval 1 week
delta.enableChangeDataFeed

true per abilitare il feed di dati delle modifiche.

Vedere Abilitare il feed di dati delle modifiche.

Tipo di dati: Boolean

Impostazione predefinita: false
delta.enableDeletionVectors

true per abilitare vettori di eliminazione e I/O predittivi per gli aggiornamenti.

Si veda Che cosa sono i vettori di eliminazione?.

Tipo di dati: Boolean

Impostazione predefinita: dipende dalle impostazioni di amministrazione dell'area di lavoro e dalla versione di Databricks Runtime. Vedere Abilitare automaticamente i vettori di eliminazione
delta.isolationLevel

Il grado in cui la transazione deve essere isolata dalle modifiche apportate da transazioni concorrenti.

I values validi sono Serializable e WriteSerializable.

Vedere Livelli di isolamento e conflitti di scrittura in Azure Databricks.

Tipo di dati: String

Impostazione predefinita: WriteSerializable
delta.logRetentionDuration

Per quanto tempo viene mantenuta la cronologia di un table Delta. VACUUM le operazioni sostituiscono questa soglia di conservazione.

Ogni volta che viene scritto un checkpoint, Delta Lake pulisce automaticamente le voci di registro più vecchie dell'intervallo di conservazione. Se si set questa proprietà a un valore sufficientemente elevato, vengono mantenute molte voci di log. Ciò non dovrebbe influire sulle prestazioni perché le operazioni sul log sono tempo costante. Le operazioni sulla cronologia sono parallele, ma diventano più costose man mano che aumentano le dimensioni del log.

Vedere Configurare la conservazione dei dati per le query di spostamento cronologico.

Tipo di dati: CalendarInterval

Impostazione predefinita: interval 30 days
delta.minReaderVersion

Versione minima del lettore di protocollo richiesta per un lettore che supporta la lettura da questo Delta table.

Databricks consiglia di configurare manualmente questa proprietà.

Si veda In che modo Azure Databricks gestisce la compatibilità delle funzionalità di Delta Lake?.

Tipo di dati: Int

Impostazione predefinita: 1
delta.minWriterVersion

La versione minima richiesta del writer del protocollo per un writer che consente di scrivere su questo Delta table.

Databricks consiglia di configurare manualmente questa proprietà.

Si veda In che modo Azure Databricks gestisce la compatibilità delle funzionalità di Delta Lake?.

Tipo di dati: Int

Impostazione predefinita: 2
delta.randomizeFilePrefixes

true per Delta Lake generate un prefisso casuale per un percorso di file anziché partition informazioni.

Tipo di dati: Boolean

Impostazione predefinita: false
delta.randomPrefixLength

Quando delta.randomizeFilePrefixes è set a true, il numero di caratteri che Delta Lake genera per i prefissi casuali.

Tipo di dati: Int

Impostazione predefinita: 2
delta.setTransactionRetentionDuration

Durata minima entro la quale le nuove istantanee manterranno gli identificatori delle transazioni (ad esempio, SetTransactions). Quando un nuovo snapshot vede una transazione identifier precedente o uguale alla durata specificata da questa proprietà, lo snapshot lo considera scaduto e lo ignora. Il SetTransactionidentifier viene utilizzato per rendere idempotenti le operazioni di scrittura. Per informazioni dettagliate, vedere scritture di table Idempotente in foreachBatch.

Tipo di dati: CalendarInterval

Impostazione predefinita: (nessuna)
delta.targetFileSize

Dimensioni del file di destinazione in byte o unità superiori per l'ottimizzazione dei file. ad esempio:
104857600 (byte) o 100mb.

Vedere Configurare Delta Lake per controllare le dimensioni dei file di dati.

Tipo di dati: String

Impostazione predefinita: (nessuna)
delta.tuneFileSizesForRewrites

true di utilizzare sempre file di dimensioni inferiori per tutte le operazioni di ottimizzazione del layout dei dati su Delta table.

false per non ottimizzare mai le dimensioni dei file inferiori, ovvero impedire l'attivazione del rilevamento automatico.

Vedere Configurare Delta Lake per controllare le dimensioni dei file di dati.

Tipo di dati: Boolean

Impostazione predefinita: (nessuna)