Informazioni di riferimento sulle proprietà della tabella Delta

Delta Lake riserva le proprietà della tabella Delta a partire da delta.. Queste proprietà possono avere significati specifici e influire sui comportamenti quando vengono impostate queste proprietà.

Nota

Tutte le operazioni che impostano o aggiornano le proprietà della tabella sono in conflitto con altre operazioni di scrittura simultanee, causandone l'esito negativo. Databricks consiglia di modificare una proprietà di tabella solo quando non sono presenti operazioni di scrittura simultanee nella tabella.

Come interagiscono le proprietà della tabella e le proprietà SparkSession?

Le proprietà della tabella Delta vengono impostate per ogni tabella. Se una proprietà è impostata in una tabella, questa è l'impostazione seguita per impostazione predefinita.

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

Per ogni proprietà della tabella Delta è possibile impostare un valore predefinito per le nuove tabelle usando una configurazione SparkSession, eseguendo l'override dell'impostazione predefinita predefinita. Questa impostazione influisce solo sulle nuove tabelle e non esegue l'override o sostituisce le proprietà impostate nelle tabelle esistenti. Il prefisso usato in SparkSession è diverso dalle configurazioni usate nelle proprietà della tabella, come illustrato nella tabella seguente:

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

Ad esempio, per impostare la delta.appendOnly = true proprietà per tutte le nuove tabelle Delta Lake create in una sessione, impostare quanto segue:

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

Per modificare le proprietà della tabella delle tabelle esistenti, utilizzare edizione Standard T TBLPROPERTIES.

Proprietà della tabella Delta

Le proprietà della tabella Delta disponibili includono quanto segue:

Proprietà
delta.appendOnly

true affinché questa tabella Delta sia di sola accodamento. Se solo accodamento, i record esistenti non possono essere eliminati e non è possibile aggiornare i valori esistenti.

Vedere Informazioni di riferimento sulle proprietà della tabella Delta.

Tipo di dati: Boolean

Impostazione predefinita: false
delta.autoOptimize.autoCompact

auto per Delta Lake per ottimizzare automaticamente il layout dei file per questa tabella Delta.

Vedere Compattazione automatica per Delta Lake in Azure Databricks.

Tipo di dati: Boolean

Impostazione predefinita: (nessuno)
delta.autoOptimize.optimizeWrite

true per Delta Lake per ottimizzare automaticamente il layout dei file per questa tabella Delta durante le scritture.

Vedere Scritture ottimizzate per Delta Lake in Azure Databricks.

Tipo di dati: Boolean

Impostazione predefinita: (nessuno)
delta.checkpoint.writeStatsAsJson

true per Delta Lake per scrivere statistiche sui file nei checkpoint in formato JSON per la stats colonna.

Vedere Gestire le statistiche a livello di colonna nei checkpoint.

Tipo di dati: Boolean

Impostazione predefinita: true
delta.checkpoint.writeStatsAsStruct

true affinché Delta Lake scriva le statistiche dei file nei checkpoint in formato struct per la stats_parsed colonna e per scrivere valori di partizione come struct per partitionValues_parsed.

Vedere Gestire le statistiche a livello di colonna nei checkpoint.

Tipo di dati: Boolean

Impostazione predefinita: (nessuno)
delta.checkpointPolicy

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

Vedere Compatibilità per le tabelle con clustering liquido.

Tipo di dati: String

Impostazione predefinita: classic
delta.columnMapping.mode

Indica se il mapping delle colonne è abilitato per le colonne della tabella Delta e le colonne Parquet corrispondenti che usano nomi diversi.

Vedere Rinominare ed eliminare colonne con mapping di colonne Delta Lake.

Nota: l'abilitazione delta.columnMapping.mode automatica abilita
delta.randomizeFilePrefixes.

Tipo di dati: DeltaColumnMappingMode

Impostazione predefinita: none
delta.dataSkippingNumIndexedCols

Numero di colonne per Delta Lake per raccogliere statistiche su per ignorare i dati. Valore di -1 indica la raccolta di statistiche per tutte le colonne.

Vedere Ignorare i dati per Delta Lake.

Tipo di dati: Int

Impostazione predefinita: 32
delta.dataSkippingStatsColumns

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

Vedere Ignorare i dati per Delta Lake.

Tipo di dati: String

Impostazione predefinita: (nessuno)
delta.deletedFileRetentionDuration

La durata più breve per Delta Lake per mantenere i file di dati eliminati logicamente prima di eliminarli fisicamente. Ciò consente di evitare errori nei lettori non aggiornati dopo la compattazione o la sovrascrittura della partizione.

Questo valore deve essere sufficientemente grande per garantire che:

* È maggiore della durata più lunga possibile di un processo se si esegue VACUUM quando sono presenti lettori o writer simultanei che accedono alla tabella Delta.
* Se si esegue una query di streaming che legge dalla tabella, tale query non viene interrotta per più tempo di 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 del tempo.

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.

Vedere 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

Grado in cui una transazione deve essere isolata dalle modifiche apportate da transazioni simultanee.

I valori 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

Durata della conservazione della cronologia per una tabella Delta. VACUUM le operazioni sostituiscono questa soglia di conservazione.

Ogni volta che viene scritto un checkpoint, Delta Lake pulisce automaticamente le voci di log precedenti all'intervallo di conservazione. Se si imposta questa proprietà su 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 del tempo.

Tipo di dati: CalendarInterval

Impostazione predefinita: interval 30 days
delta.minReaderVersion

Versione minima richiesta del lettore del protocollo per un lettore che consente di leggere da questa tabella Delta.

Databricks consiglia di configurare manualmente questa proprietà.

Vedere How does Azure Databricks manage Delta Lake feature compatibility?.

Tipo di dati: Int

Impostazione predefinita: 1
delta.minWriterVersion

Versione minima richiesta del writer del protocollo per un writer che consente di scrivere in questa tabella Delta.

Databricks consiglia di configurare manualmente questa proprietà.

Vedere How does Azure Databricks manage Delta Lake feature compatibility?.

Tipo di dati: Int

Impostazione predefinita: 2
delta.randomizeFilePrefixes

true per Delta Lake per generare un prefisso casuale per un percorso di file anziché per le informazioni di partizione.

Tipo di dati: Boolean

Impostazione predefinita: false
delta.randomPrefixLength

Quando delta.randomizeFilePrefixes è impostato su true, il numero di caratteri generati da Delta Lake per i prefissi casuali.

Tipo di dati: Int

Impostazione predefinita: 2
delta.setTransactionRetentionDuration

Durata più breve entro la quale i nuovi snapshot manterranno gli identificatori delle transazioni(ad esempio, SetTransactions). Quando un nuovo snapshot rileva un identificatore di transazione precedente o uguale alla durata specificata da questa proprietà, lo snapshot lo considera scaduto e lo ignora. L'identificatore SetTransaction viene usato quando si esegue l'idempotente di scrittura. Per informazioni dettagliate, vedere Scritture di tabelle Idempotenti in foreachBatch .

Tipo di dati: CalendarInterval

Impostazione predefinita: (nessuno)
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: (nessuno)
delta.tuneFileSizesForRewrites

true per usare sempre dimensioni di file inferiori per tutte le operazioni di ottimizzazione del layout dei dati nella tabella Delta.

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: (nessuno)