Freigeben über


Delta-Tabellenfeatures ablegen

Wichtig

Unterstützung für das Ablegen von Delta-Tabellenfeatures und das Herabstufen von Protokollversionen befindet sich in der öffentlichen Vorschau in Databricks Runtime 14.1 und höher.

Azure Databricks bietet eingeschränkte Unterstützung für das Ablegen von Tabellenfeatures. Um ein Tabellenfeature abzulegen, muss Folgendes geschehen:

  • Deaktivieren Sie Tabelleneigenschaften, die das Tabellenfeature verwenden.
  • Entfernen Sie alle Spuren des Tabellenfeatures aus den Datendateien, welche die Tabelle sichern.
  • Entfernen Sie Transaktionseinträge, die das Tabellenfeature verwenden, aus dem Transaktionsprotokoll.
  • Stufen Sie das Tabellenprotokoll herunter.

Wenn dies unterstützt wird, sollten Sie diese Funktionalität nur verwenden, um die Kompatibilität mit früheren Databricks Runtime-Versionen, Delta Sharing oder anderen Delta Lake-Reader- oder Writer-Clients zu unterstützen.

Wichtig

Alle DROP FEATURE Vorgänge verursachen einen Konflikt mit allen gleichzeitigen Schreibvorgängen.

Streaming-Lesevorgänge schlagen fehl, wenn ein Commit auftritt, der Tabellenmetadaten ändert. Wenn der Stream fortgesetzt werden soll, müssen Sie ihn neu starten. Empfohlene Methoden finden Sie unter Produktionsüberlegungen für strukturiertes Streaming.

Wie kann ich ein Delta-Tabellenfeature ablegen?

Um ein Delta-Tabellenfeature zu entfernen, führen Sie einen ALTER TABLE <table-name> DROP FEATURE <feature-name> [TRUNCATE HISTORY]-Befehl aus. Weitere Informationen finden Sie unter ALTER TABLE.

Sie müssen Databricks Runtime 14.1 oder höher verwenden und über MODIFY-Berechtigungen für die Ziel-Delta-Tabelle verfügen.

Welche Delta-Tabellenfeatures können abgelegt werden?

Sie können die folgenden Delta-Tabellenfeatures ablegen:

Sie können keine anderen Delta-Tabellenfeatures ablegen.

Aktivieren von Tabellenfeatures zum Trennen von Legacy-Features

Der DROP FEATURE-Befehl erfordert Protokollversionen, die Lese- und Schreibvorgänge für Tabellenfeatures unterstützen. Delta-Features wie columnMapping und checkConstraints wurden in früheren Protokollversionen unterstützt. Abhängig von anderen Features, die für die Tabelle aktiviert sind, müssen Sie möglicherweise Protokollversionen upgraden, bevor Sie diese Features trennen können.

Sie können den folgenden Befehl verwenden, um die Tabellenleser- und -schreiberversionen zu aktualisieren, wodurch Sie die Spaltenzuordnung aufgeben und das Protokoll herabstufen können:

ALTER TABLE <table-name> SET TBLPROPERTIES (
  'delta.minReaderVersion' = '3',
  'delta.minWriterVersion' = '7'
)

Wie werden Delta-Tabellenfeatures abgelegt?

Da Delta-Tabellenfeatures Reader- und Writer-Protokolle darstellen, dürfen im Transaktionsprotokoll keine Hinweise darauf vorhanden sein, um die vollständige Entfernung zu ermöglichen. Das Ablegen eines Features erfolgt in zwei Phasen und erfordert Zeit, bevor es abgeschlossen ist. Die Besonderheiten der Entfernung eines Features variieren je nach Feature, der folgende Abschnitt bietet jedoch eine allgemeine Übersicht.

Vorbereiten des Ablegens eines Tabellenfeatures

Während der ersten Phase bereitet sich der Benutzer darauf vor, das Tabellenfeature abzulegen. Im Folgenden wird beschrieben, was während dieser Phase geschieht:

  1. Der Benutzer führt den DROP FEATURE-Befehl aus.
  2. Tabelleneigenschaften, die ein Tabellenfeature speziell aktivieren, haben Werte zum Deaktivieren des Features festgelegt.
  3. Tabelleneigenschaften, die das Verhalten steuern, die dem abgelegten Feature zugeordnet sind, haben Optionen auf Standardwerte vor der Einführung des Features festgelegt.
  4. Bei Bedarf werden Daten- und Metadatendateien in Bezug auf die aktualisierten Tabelleneigenschaften umgeschrieben.
  5. Der Befehl wird abgeschlossen und gibt eine Fehlermeldung zurück, die den Benutzer informiert, dass er 24 Stunden warten muss, um mit der Entfernung des Features fortzufahren.

Nach dem ersten Deaktivieren eines Features können Sie mit dem Schreiben in die Zieltabelle fortfahren, bevor Sie das Herabstufen des Protokolls abschließen, aber Sie können das Tabellenfeature, das Sie entfernen, nicht verwenden.

Hinweis

Wenn Sie die Tabelle in diesem Zustand belassen, verwenden Vorgänge für die Tabelle das Tabellenfeature nicht, aber das Protokoll unterstützt das Tabellenfeature weiterhin. Bis Sie den letzten Schritt zum Herabstufen abgeschlossen haben, ist die Tabelle von Delta-Clients, die das Tabellenfeature nicht verstehen, nicht lesbar.

Herabstufen des Protokolls und Ablegen eines Tabellenfeatures

Um das Tabellenfeature abzulegen, müssen Sie den gesamten Transaktionsverlauf entfernen, der mit dem Feature verbunden ist, und das Protokoll herabstufen.

  1. Nachdem mindestens 24 Stunden vergangen sind, führt der Benutzer den DROP FEATURE-Befehl erneut mit der TRUNCATE HISTORY-Klausel aus.
  2. Der Client bestätigt, dass keine Transaktionen im angegebenen Aufbewahrungsschwellenwert das Tabellenfeature verwenden, und schneidet dann den Tabellenverlauf auf diesen Schwellenwert ab.
  3. Das Protokoll wird herabgestuft und das Tabellenfeature abgelegt.
  4. Wenn die Tabellenfeatures, die in der Tabelle vorhanden sind, durch eine Legacy-Protokollversion dargestellt werden können, werden die minReaderVersion und minWriterVersion für die Tabelle auf die niedrigste Version herabgestuft, die genau die verbleibenden Features unterstützt, die von der Delta-Tabelle verwendet werden.

Wichtig

Das Ausführen von ALTER TABLE <table-name> DROP FEATURE <feature-name> TRUNCATE HISTORY entfernt alle Transaktionsprotokolldaten, die älter als 24 Stunden sind. Nach dem Ablegen eines Delta-Tabellenfeatures haben Sie keinen Zugriff mehr auf den Tabellenverlauf oder die Zeitreise.

Siehe Wie verwaltet Azure Databricks die Kompatibilität von Delta Lake-Features?.