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.
Usare il REORG comando quando è necessario riscrivere parte di una tabella Delta per un obiettivo di manutenzione specifico. In Fabric, REORG riorganizza il layout fisico di una tabella riscrivendo i file di dati o aggiornando i metadati della tabella, a seconda dell'opzione scelta.
REORG è diverso dalla compattazione dei file di routine. È destinato a scenari quali la rimozione fisica delle righe che i vettori di eliminazione hanno contrassegnato come eliminate.
Operazioni di REORG
REORG TABLE riscrive lo stato della tabella per un'operazione di manutenzione definita.
-
APPLY (PURGE)riscrive i file di dati interessati in modo che le righe eliminate temporaneamente tramite vettori di eliminazione vengano fisicamente rimosse dai file Parquet sottostanti.
Usare REORG quando è necessario un risultato di riscrittura specifico, non solo più piccoli o meno file.
Usare PURGE per rimuovere fisicamente le righe eliminate temporaneamente
I vettori di eliminazione consentono a Delta Lake di contrassegnare immediatamente le righe come eliminate senza riscrivere immediatamente i file Parquet originali. Questo comportamento mantiene efficienti le operazioni di eliminazione, ma i dati delle righe eliminati sono ancora presenti nei file fisici fino a quando non vengono riscritti.
Quando si esegue REORG TABLE ... APPLY (PURGE), Fabric riscrive i file interessati e rimuove le righe eliminate in modo soft dai file Parquet attivi. Al PURGE termine, le righe eliminate vengono effettivamente rimosse dai file riscritti.
Note
PURGE non è in genere necessario come passaggio di manutenzione separato.
OPTIMIZE elimina automaticamente i file in cui viene fatto riferimento a più di 5% di record dai vettori di eliminazione durante la compattazione. Usa PURGE nei casi in cui devi controllare esplicitamente quando le righe eliminate logicamente vengono rimosse fisicamente.
Questa opzione è utile quando:
- Si dispone di requisiti di conformità o GDPR ed è necessario rimuovere fisicamente i dati in base a una pianificazione specifica.
- Si desidera forzare l'eliminazione dei file che scendono al di sotto della soglia del 5% utilizzata da
OPTIMIZE.
Esaminare la sintassi
Utilizzare gli esempi seguenti in un notebook Fabric.
Rimuovere definitivamente da una tabella le righe eliminate temporaneamente
Eliminare definitivamente le righe eliminate temporaneamente solo per i dati corrispondenti
Usare una WHERE clausola quando si desidera specificare partizioni specifiche o una sezione di dati più piccola.
Scegliere REORG o OPTIMIZE
REORG e OPTIMIZE risolvono problemi diversi.
-
OPTIMIZEesegue la compattazione dei contenitori. Consolida i file di piccole dimensioni in file di dimensioni maggiori per migliorare l'efficienza dell'analisi. -
REORG ... APPLY (PURGE)rimuove fisicamente le righe che i vettori di eliminazione hanno contrassegnato come eliminate.
È possibile usare entrambi i comandi insieme. Ad esempio, è possibile eseguire REORG ... APPLY (PURGE) per rimuovere fisicamente i dati eliminati, quindi eseguire OPTIMIZE per migliorare il layout dei file.
Comprendere i vettori di eliminazione
I vettori di eliminazione sono strutture di metadati che contrassegnano le righe come eliminate senza riscrivere immediatamente i file Parquet che contengono tali righe. I lettori rispettano i vettori di eliminazione, quindi le righe eliminate non vengono visualizzate nei risultati della query, ma i byte rimangono ancora in archiviazione fino a quando non si verifica una riscrittura.
REORG ... APPLY (PURGE) è il passaggio che rimuove fisicamente tali righe dai file Parquet riscritti.
Eseguire REORG in Fabric
Esegui REORG da esperienze basate su Spark in Fabric, ad esempio:
- Notebook di Fabric
- Definizioni dei job Spark
Non eseguire REORG dall'endpoint di analisi SQL.
REORG è un comando di manutenzione di Spark SQL per le tabelle Delta.
Seguire le migliori pratiche
- Eseguire
PURGEsolo quando si ha una necessità specifica, ad esempio i requisiti di conformità.OPTIMIZEelimina automaticamente i file a cui fanno riferimento più di 5% di record dai vettori di eliminazione, quindi la manutenzione di routine in genere non richiede un passaggio separatoPURGE. - Eseguire
PURGEprima diVACUUMquando è necessario rimuovere fisicamente i dati eliminati per i requisiti di conformità o GDPR. - Usare
WHEREi predicati per definire come destinazione partizioni specifiche quando non è necessario riscrivere la tabella completa. - Usa
UPGRADE UNIFORMquando hai bisogno dei lettori Iceberg, ma tieni conto dei metadati aggiuntivi mantenuti da UniForm. - Trattare
REORGeOPTIMIZEcome operazioni di manutenzione complementari, non intercambiabili.