Delta-Tabellenwartung in Microsoft Fabric

Die Wartung von Delta-Tabellen hilft Ihnen, Tabellen leistungsfähig und speichereffizient zu halten, wenn ihr Umfang wächst. Im Laufe der Zeit können Delta-Tabellen viele kleine Dateien ansammeln, gelöschte Daten weiterhin Speicherplatz verbrauchen, und veraltete Statistiken können die Abfrageeffizienz verringern. Regelmäßige Wartung hilft Ihnen, die Leseleistung zu verbessern, Speicher zurückzufordern und Tabellenmetadaten so auszurichten, wie Ihre Workloads auf Daten zugreifen. Verwenden Sie diesen Artikel als Kurzanleitung für die wichtigsten Wartungsvorgänge, die für Delta-Tabellen zur Verfügung stehen.

Warum Wartung wichtig ist

Wenn Delta-Tabellen wachsen, ändert die Schreibaktivität das physische Layout der Tabelle. Wiederholte Aufnahmeaufträge können viele kleine Dateien erstellen, Aktualisierungs- und Löschvorgänge können nicht referenzierte Dateien oder vorläufig gelöschte Zeilen hinter sich lassen, und ältere Statistiken können es für Spark schwieriger machen, unnötige Daten zu überspringen. Wenn Sie Tabellen regelmäßig warten, reduzieren Sie den Overhead bei Scans, helfen Fabric dabei, Abfragen effektiver zu optimieren, und vermeiden, für Speicher zu bezahlen, den aktive Tabellenversionen nicht mehr benötigen.

Verwenden von OPTIMIZE für die Bin-Komprimierung

Verwenden Sie diesen Vorgang OPTIMIZE , wenn Ihre Delta-Tabelle viele kleine Dateien gesammelt hat und Sie sie in weniger, größere Dateien konsolidieren möchten. Dieser Vorgang verbessert die Leseleistung, indem der Dateiverwaltungsaufwand reduziert und Scans effizienter gestaltet werden. OPTIMIZE unterstützt auch andere Argumente und Features wie VORDERz. B. . Vollständige Syntax, Optionen und Beispiele finden Sie unter "Table compaction" und "V-Order".

OPTIMIZE table_name

Verwenden von VAKUUM zur Speicherbereinigung

Verwenden Sie VACUUM diese Option, wenn Sie nicht referenzierte Datendateien entfernen möchten, die älter als das konfigurierte Aufbewahrungsfenster sind. In Fabric hilft Ihnen dieser Vorgang, den OneLake-Speicher nach Updates, Löschvorgängen, Zusammenführungen, Überschreibungsvorgängen und Komprimierung zurückzufordern. VACUUM konzentriert sich auf die Speicherbereinigung und nicht auf die Abfrageoptimierung, sodass sie in der Regel andere Wartungsaufgaben ergänzt, anstatt sie zu ersetzen. Informationen zu Aufbewahrungsleitlinien und Ausführungsdetails finden Sie unter VACUUM.

VACUUM table_name

ReORG für gezielte Reorganisation verwenden

Verwenden Sie REORG diese Methode, wenn Sie den Tabellenzustand für ein bestimmtes Wartungsziel anstelle der allgemeinen Dateikomprimierung neu schreiben müssen. In Delta Lake entfernt REORG TABLE ... APPLY (PURGE) physisch Zeilen, die durch Löschvektoren als gelöscht markiert wurden. Die unterstützten Optionen und deren Verwendung finden Sie unter "Neuorganisieren von Delta-Tabellen mit REORG".

Note

REORG ist in der Regel nicht erforderlich, da OPTIMIZE automatisch Dateien löscht, bei denen mehr als 5 % der Datensätze von Löschvektoren referenziert werden.

REORG TABLE table_name APPLY (PURGE)

Statistiken auf dem aktuellen Stand halten

Die Fabric Spark Runtime unterstützt zwei Arten von Statistiken zu Delta-Tabellen: Dateistatistiken und Tabellenstatistiken.

  • Dateistatistiken – Delta Lake zeichnet pro Datei min., max. und Null-Anzahl-Werte für indizierte Spalten jedes Mal auf, wenn eine Datendatei geschrieben wird. Das Spark-Modul verwendet diese Statistiken, um Dateien zu überspringen, die keine Zeilen enthalten können, die mit einem Abfrage-Prädikat übereinstimmen, wodurch die Menge der gescannten Daten reduziert wird. Standardmäßig werden Statistiken für die ersten 32 Spalten erfasst. Ausführliche Informationen dazu, wie das Überspringen von Dateien funktioniert und wie Sie anpassen können, für welche Spaltenstatistiken gesammelt werden, finden Sie unter "Dateisprung".
  • Tabellenstatistiken – Statistiken auf Spaltenebene, die über alle Dateien in der Tabelle aggregiert wurden, werden automatisch verwaltet, sodass Spark bessere Metadaten für die Abfrageplanung hat. Diese Statistiken verbessern die Leistung durch bessere Optimierungsentscheidungen für Filter, Verknüpfungen und Aggregationen. Informationen dazu, wie automatisierte Statistiken funktionieren und wie sie konfiguriert werden, finden Sie unter Automatisierte Statistiken für Delta-Tabellen.

Verwenden der AutoCompaction für die kontinuierliche Dateiverwaltung

Delta Lake unterstützt auch die automatische Kompaktierung nach Schreibvorgängen, sodass Tabellen in einem besseren Zustand bleiben können, ohne dass dafür jedes Mal ein separater manueller Job erforderlich ist. Sie können dieses Verhalten über Tabelleneigenschaften oder Arbeitsbereichseinstellungen steuern, je nachdem, wie Sie Ihre Spark-Workloads verwalten. Ausführliche Informationen zum Aktivieren finden Sie unter "Automatische Komprimierung ".

Wartung in der Lakehouse-Benutzeroberfläche ausführen

Wenn Sie einen UI-basierten Workflow bevorzugen, können Sie Wartungsaktionen direkt im Lakehouse-Explorer ausführen. Siehe Wartung von Lakehouse-Tabellen.

Folgen sie einem praktischen Wartungsrhythmen

Führen Sie OPTIMIZE nach einer umfangreichen Batch-Ingestion aus oder immer dann, wenn sich kleine Dateien anzusammeln beginnen und Lesevorgänge verlangsamen. Führen Sie VACUUM regelmäßig aus, z. B. wöchentlich oder nach umfangreicheren Kompaktierungszyklen, um Speicherplatz aus Dateien zurückzugewinnen, die von der Tabelle nicht mehr referenziert werden. REORG TABLE ... APPLY (PURGE) ist als Routinewartung nicht erforderlich, da OPTIMIZE Dateien automatisch entfernt, bei denen mehr als 5 % der Datensätze durch Löschvektoren referenziert werden. Reservieren Sie PURGE für Szenarien, die eine explizite Kontrolle erfordern, z. B. Compliance- oder DSGVO-Verpflichtungen. Überwachen Sie die Tabellenbedingung mit DESCRIBE DETAIL und DESCRIBE HISTORY so können Sie die Dateianzahl, Größe und den Wartungsverlauf vor und nach jedem Vorgang nachverfolgen.

-- View current table state
DESCRIBE DETAIL table_name;

-- View history of transactions
DESCRIBE HISTORY table_name;