Eliminazione dinamica di file

L'eliminazione dinamica dei file può migliorare significativamente le prestazioni di molte query nelle tabelle Delta Lake. L'eliminazione dinamica dei file è particolarmente efficiente per le tabelle non partizionate o per i join in colonne non partizionate. L'impatto sulle prestazioni dell'eliminazione dinamica dei file è spesso correlato al clustering dei dati, quindi è consigliabile usare L'ordinamento Z per ottimizzare il vantaggio.

Importante

È necessario usare il calcolo abilitato per Photon per usare l'eliminazione dinamica dei file nelle MERGEistruzioni , UPDATEe DELETE . Solo SELECT le istruzioni sfruttano l'eliminazione dinamica dei file quando Photon non viene usato.

Per i casi d'uso e in background per l'eliminazione dinamica dei file, vedere Query SQL più veloci su Delta Lake con eliminazione dinamica dei file.

Configurazione

L'eliminazione dinamica dei file è controllata dalle opzioni di configurazione di Apache Spark seguenti:

  • spark.databricks.optimizer.dynamicFilePruning (il valore predefinito è true): flag principale che indirizza l'ottimizzatore a eseguire il push dei filtri verso il basso. Se impostato su false, l'eliminazione dinamica dei file non sarà attiva.
  • spark.databricks.optimizer.deltaTableSizeThreshold (il valore predefinito è 10,000,000,000 bytes (10 GB)): rappresenta le dimensioni minime (in byte) della tabella Delta sul lato probe del join necessario per attivare l'eliminazione dinamica dei file. Se il lato probe non è molto grande, probabilmente non vale la pena eseguire il push dei filtri e possiamo semplicemente analizzare l'intera tabella. È possibile trovare le dimensioni di una tabella Delta eseguendo il DESCRIBE DETAIL table_name comando e quindi esaminando la sizeInBytes colonna.
  • spark.databricks.optimizer.deltaTableFilesThreshold (il valore predefinito è 10): rappresenta il numero di file della tabella Delta sul lato probe del join necessario per attivare l'eliminazione dinamica dei file. Quando la tabella lato probe contiene meno file rispetto al valore soglia, l'eliminazione dinamica dei file non viene attivata. Se una tabella contiene solo alcuni file, probabilmente non è utile abilitare l'eliminazione dinamica dei file. È possibile trovare le dimensioni di una tabella Delta eseguendo il DESCRIBE DETAIL table_name comando e quindi esaminando la numFiles colonna.