Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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".
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.
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.
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;