Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La manutenzione delle tabelle Delta consente di mantenerle veloci ed efficienti in termini di archiviazione man mano che crescono. Nel corso del tempo, le tabelle Delta possono accumulare molti file di piccole dimensioni, i dati eliminati possono continuare a usare lo spazio di archiviazione e le statistiche non aggiornate possono ridurre l'efficienza delle query. La manutenzione regolare consente di migliorare le prestazioni di lettura, recuperare l'archiviazione e mantenere i metadati della tabella allineati al modo in cui i carichi di lavoro accedono ai dati. Usare questo articolo come guida rapida alle operazioni di manutenzione principali disponibili per le tabelle Delta.
Perché la manutenzione è importante
Man mano che le tabelle Delta aumentano, l'attività di scrittura modifica il layout fisico della tabella. I processi di acquisizione ripetuti possono creare molti file di piccole dimensioni, le operazioni di aggiornamento ed eliminazione possono lasciare file non referenziati o righe contrassegnate come eliminate in modo soft, e le statistiche meno recenti possono rendere più difficile per Spark ignorare i dati non necessari. Se esegui regolarmente la manutenzione delle tabelle, riduci il sovraccarico delle scansioni, aiuti Fabric a ottimizzare le query in modo più efficace ed eviti di pagare per mantenere spazio di archiviazione che le versioni attive delle tabelle non richiedono più.
Utilizzare OPTIMIZE per la compattazione dei contenitori
Usare OPTIMIZE quando la tabella Delta ha accumulato molti file di piccole dimensioni e si vuole consolidarli in un numero minore di file di dimensioni maggiori. Questa operazione migliora le prestazioni di lettura riducendo il sovraccarico di gestione dei file e rendendo le analisi più efficienti.
OPTIMIZE supporta anche altri parametri e funzionalità, come VORDER. Per la sintassi completa, le opzioni e gli esempi, vedere Compattazione tabelle e V-Order.
Usa VACUUM per pulire lo spazio di archiviazione
Usare VACUUM quando si desidera rimuovere i file di dati senza riferimenti precedenti alla finestra di conservazione configurata. In Fabric questa operazione consente di recuperare l'archiviazione OneLake dopo aggiornamenti, eliminazioni, merge, operazioni di sovrascrittura e compattazione.
VACUUM è incentrato sulla pulizia dell'archiviazione anziché sull'ottimizzazione delle query, quindi in genere integra altre attività di manutenzione anziché sostituirle. Per informazioni dettagliate sulla conservazione e sull'esecuzione, vedere VACUUM.
Usare REORG per la riorganizzazione mirata
Usare REORG quando è necessario riscrivere lo stato della tabella per un obiettivo di manutenzione specifico anziché la compattazione generale dei file. In Delta Lake REORG TABLE ... APPLY (PURGE) rimuove fisicamente le righe che eliminano vettori contrassegnati come eliminati. Per le opzioni supportate e quando usarle, vedere Riorganizzare le tabelle Delta con REORG.
Note
REORG non è in genere necessario perché OPTIMIZE elimina automaticamente i file in cui viene fatto riferimento a più di 5% di record dai vettori di eliminazione.
Mantenere aggiornate le statistiche
Il runtime di Spark Fabric supporta due tipi di statistiche nelle tabelle Delta: statistiche dei file e statistiche delle tabelle.
- Statistiche file—Delta Lake registra, per ogni file, i valori minimi, massimi e il conteggio dei valori null per le colonne indicizzate ogni volta che viene scritto un file di dati. Il motore Spark usa queste statistiche per ignorare i file che non possono contenere righe corrispondenti a un predicato di query, riducendo così la quantità di dati analizzati. Per impostazione predefinita, le statistiche vengono raccolte per le prime 32 colonne. Per informazioni dettagliate sul funzionamento dell'ignoramento del file e su come personalizzare le statistiche delle colonne per cui vengono raccolte, vedere Ignora file.
- Statistiche tabella: le statistiche a livello di colonna aggregate in tutti i file della tabella vengono mantenute automaticamente, in modo che Spark disponga di metadati migliori per la pianificazione delle query. Queste statistiche migliorano le prestazioni grazie a decisioni di ottimizzazione migliori per filtri, join e aggregazioni. Per informazioni sul funzionamento delle statistiche automatizzate e su come configurare, vedere Statistiche automatizzate per le tabelle Delta.
Usare la funzionalità di completamento automatico per la gestione continua dei file
Delta Lake supporta anche la compattazione automatica dopo le scritture, in modo che le tabelle possano rimanere più integre senza richiedere un processo manuale separato ogni volta. È possibile controllare questo comportamento tramite le proprietà della tabella o le impostazioni dell'area di lavoro, a seconda della modalità di gestione dei carichi di lavoro Spark. Per informazioni dettagliate su come abilitare, vedere Compattazione automatica.
Eseguire la manutenzione dall'interfaccia utente lakehouse
Se si preferisce un flusso di lavoro basato sull'interfaccia utente, è possibile eseguire azioni di manutenzione direttamente da Lakehouse Explorer, vedere La manutenzione delle tabelle lakehouse.
Seguire una cadenza di manutenzione pratica
Eseguire OPTIMIZE dopo un'ingestione in batch su larga scala o ogni volta che i file di piccole dimensioni iniziano ad accumularsi e a rallentare la lettura. Esecuzione VACUUM a cadenza regolare, ad esempio settimanale o dopo i cicli di compattazione principali, per recuperare l'archiviazione dai file a cui la tabella non fa più riferimento.
REORG TABLE ... APPLY (PURGE) non è necessaria come manutenzione di routine perché OPTIMIZE elimina automaticamente i file in cui più di 5% di record fanno riferimento a vettori di eliminazione. Riservare PURGE per scenari che richiedono un controllo esplicito, ad esempio obblighi di conformità o GDPR. Monitorare la condizione della tabella con DESCRIBE DETAIL e DESCRIBE HISTORY in modo da tenere traccia dei conteggi dei file, delle dimensioni e della cronologia di manutenzione prima e dopo ogni operazione.
-- View current table state
DESCRIBE DETAIL table_name;
-- View history of transactions
DESCRIBE HISTORY table_name;