Neuorganisieren von Delta-Tabellen mit REORG

Verwenden Sie den REORG Befehl, wenn Sie einen Teil einer Delta-Tabelle für ein bestimmtes Wartungsziel neu schreiben müssen. In Fabric wird REORG das physische Layout einer Tabelle neu organisiert, indem Datendateien umgeschrieben oder Tabellenmetadaten aktualisiert werden, je nachdem, welche Option Sie auswählen.

REORG unterscheidet sich von der Routinedateikomprimierung. Sie zielt auf Szenarien ab, z. B. das physische Entfernen von Zeilen, die von Löschvektoren als gelöscht markiert wurden.

Was REORG tut

REORG TABLE Schreibt den Tabellenstatus für einen definierten Wartungsvorgang neu.

  • APPLY (PURGE) schreibt betroffene Datendateien neu, sodass Zeilen, die durch Löschvektoren logisch gelöscht wurden, physisch aus den zugrunde liegenden Parquet-Dateien entfernt werden.

Verwenden Sie diese Methode REORG , wenn Sie ein bestimmtes Rewrite-Ergebnis benötigen, nicht nur kleinere oder weniger Dateien.

Verwenden Sie PURGE, um als gelöscht markierte Zeilen physisch zu entfernen

Mit Löschvektoren können Delta Lake Zeilen sofort als gelöscht markieren, ohne die ursprünglichen Parkettdateien sofort neu zu schreiben. Dieses Verhalten behält Löschvorgänge effizient bei, aber die gelöschten Zeilendaten sind weiterhin in den physischen Dateien vorhanden, bis Sie sie neu schreiben.

Wenn Sie REORG TABLE ... APPLY (PURGE) ausführen, schreibt Fabric die betroffenen Dateien neu und entfernt die vorläufig gelöschten Zeilen aus den aktiven Parkettdateien. Nachdem PURGE abgeschlossen ist, sind diese gelöschten Zeilen tatsächlich aus den neu geschriebenen Dateien verschwunden.

Note

PURGE ist in der Regel nicht als separater Wartungsschritt erforderlich. OPTIMIZE Löscht Dateien automatisch, bei denen mehr als 5% datensätze durch Löschvektoren während der Komprimierung referenziert werden. Reservieren Sie PURGE für Szenarien, in denen Sie explizite Kontrolle darüber benötigen, wann vorläufig gelöschte Zeilen physisch entfernt werden.

Diese Option ist nützlich, wenn:

  • Sie verfügen über Compliance- oder DSGVO-Anforderungen und benötigen gelöschte Daten, die physisch nach einem bestimmten Zeitplan entfernt werden müssen.
  • Sie möchten das Löschen von Dateien erzwingen, die unter den verwendeten Schwellenwert OPTIMIZE von 5% fallen.

Überprüfen der Syntax

Verwenden Sie die folgenden Beispiele in einem Fabric Notizbuch.

Löschen vorläufig gelöschter Zeilen aus einer Tabelle

REORG TABLE table_name APPLY (PURGE)

Löschen vorläufig gelöschter Zeilen nur für übereinstimmende Daten

REORG TABLE table_name WHERE predicate APPLY (PURGE)

Verwenden Sie eine WHERE Klausel, wenn Sie bestimmte Partitionen oder ein kleineres Datensegment als Ziel festlegen möchten.

REORG TABLE sales.orders
WHERE order_date = DATE '2026-05-01'
APPLY (PURGE)

Wählen Sie REORG oder OPTIMIEREN aus.

REORG und OPTIMIZE lösen unterschiedliche Probleme.

  • OPTIMIZE führt die Bin-Komprimierung durch. Es konsolidiert kleine Dateien in größere Dateien, um die Scaneffizienz zu verbessern.
  • REORG ... APPLY (PURGE) entfernt physisch Zeilen, die von Löschvektoren als gelöscht markiert wurden.

Sie können beide Befehle zusammen verwenden. Sie könnten beispielsweise REORG ... APPLY (PURGE) ausführen, um gelöschte Daten physisch zu entfernen, und dann OPTIMIZE ausführen, um die Dateianordnung zu verbessern.

Grundlegendes zu Löschvektoren

Löschvektoren sind Metadatenstrukturen, die Zeilen als gelöscht markieren, ohne die Parkettdateien, die diese Zeilen enthalten, sofort neu zu schreiben. Leser berücksichtigen die Löschvektoren, sodass die gelöschten Zeilen nicht in Abfrageergebnissen angezeigt werden, aber die Bytes bleiben weiterhin im Speicher, bis ein Umschreiben erfolgt.

REORG ... APPLY (PURGE) ist der Schritt, der diese Zeilen physisch aus den neu geschriebenen Parquet-Dateien entfernt.

REORG in Fabric ausführen

Führen Sie REORG in Fabric aus Spark-basierten Umgebungen aus, z. B.:

  • Fabric-Notizbücher
  • Spark-Auftragsdefinitionen

Führen Sie REORG nicht über den SQL-Analyseendpunkt aus. REORG ist ein Spark SQL-Wartungsbefehl für Delta-Tabellen.

Bewährte Methoden befolgen

  • Führen Sie PURGE nur aus, wenn Sie einen konkreten Bedarf haben, zum Beispiel Compliance-Anforderungen. OPTIMIZE löscht automatisch Dateien, bei denen mehr als 5 % der Datensätze von Löschvektoren referenziert werden, sodass eine Routinewartung in der Regel keinen separaten PURGE-Schritt erfordert.
  • Führen Sie PURGE vor VACUUM aus, wenn gelöschte Daten zur Einhaltung von Compliance- oder DSGVO-Anforderungen physisch entfernt werden müssen.
  • Verwenden Sie WHERE Prädikate, um bestimmte Partitionen als Ziel festzulegen, wenn Sie die vollständige Tabelle nicht neu schreiben müssen.
  • Verwenden Sie UPGRADE UNIFORM, wenn Sie Iceberg-Reader benötigen, berücksichtigen Sie jedoch die zusätzlichen Metadaten, die UniForm verwaltet.
  • Behandeln REORG und OPTIMIZE als ergänzende Wartungsvorgänge, nicht austauschbar.