Informazioni di riferimento sulle proprietà della tabella Delta
Il Delta Lake riserva le proprietà della tabella Delta che iniziano con 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 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 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. 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 conferenza | SparkSession conf |
---|---|
delta.<conf> |
spark.databricks.delta.properties.defaults.<conf> |
Ad esempio, per impostare la proprietà delta.appendOnly = true
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 SET TBLPROPERTIES.
Proprietà delle tabelle Delta
Di seguito sono riportate le proprietà disponibili per le tabelle Delta:
Proprietà |
---|
delta.appendOnly true affinché questa tabella Delta sia in modalità sola appendice. 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 affinché Delta Lake ottimizzi automaticamente il layout dei file di questa tabella Delta.Vedere Compattazione automatica per Delta Lake in Azure Databricks. Tipo di dati: Boolean Impostazione predefinita: (nessuna) |
delta.autoOptimize.optimizeWrite true per Delta Lake per ottimizzare automaticamente il layout dei file per questa tabella 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 affinché Delta Lake scriva statistiche sui file nei checkpoint in formato JSON per la colonna stats .Vedere Gestire le statistiche a livello di colonna nei checkpoint. Tipo di dati: Boolean Impostazione predefinita: true |
delta.checkpoint.writeStatsAsStruct true per permettere a Delta Lake di scrivere le statistiche dei file nei checkpoint in formato struct per la colonna stats_parsed e scrivere i valori di partizione come struct per partitionValues_parsed .Vedere Gestire le statistiche a livello di colonna nei checkpoint. Tipo di dati: Boolean Impostazione predefinita: (nessuna) |
delta.checkpointPolicy classic per i checkpoint classici di Delta Lake.
v2 per i checkpoint v2.Consultare Compatibilità per le tabelle con raggruppamento dinamico. 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 utilizzano nomi diversi. Vedi Rinominare ed eliminare colonne con la mappatura delle colonne di Delta Lake. Nota: abilitando delta.columnMapping.mode si abilita automaticamentedelta.randomizeFilePrefixes .Tipo di dati: DeltaColumnMappingMode Impostazione predefinita: none |
delta.dataSkippingNumIndexedCols Il numero di colonne su cui Delta Lake raccoglie statistiche per ottimizzare l'elusione dei dati. Il valore di -1 indica la raccolta di statistiche per tutte le colonne.Consultare Salto dei dati per Delta Lake. Tipo di dati: Int Impostazione predefinita: 32 |
delta.dataSkippingStatsColumns Un elenco separato da virgole di nomi di colonne su cui Delta Lake raccoglie statistiche per migliorare la funzionalità di saltare i dati. Questa proprietà ha la precedenza su delta.dataSkippingNumIndexedCols .Consultare l'eliminazione 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. 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:
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 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 registro più vecchie dell'intervallo di conservazione. Se si imposta questa proprietà su un valore sufficientemente grande, molte voci di registro vengono conservate. 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 richiesta del lettore del protocollo per un lettore che consente di leggere da questa tabella Delta. Databricks sconsiglia 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 Versione minima richiesta del protocollo dello scrittore per un scrittore che consente di scrivere su questa tabella Delta. Databricks sconsiglia 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 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 minima entro la quale le nuove istantanee manterranno gli identificatori delle transazioni (ad esempio, SetTransaction s). Quando un nuovo snapshot vede un identificatore di transazione più vecchio o pari alla durata specificata da questa proprietà, lo snapshot lo considera scaduto e lo ignora. L'identificatore SetTransaction viene usato per rendere le operazioni di scrittura idempotenti. Per informazioni dettagliate, vedere scritture di tabelle Idempotenti 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 per usare sempre dimensioni di file inferiori per tutte le operazioni di ottimizzazione del layout dei dati nella tabella Delta.false per non regolare mai le dimensioni dei file inferiori, cioè 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) |