Katalog-Commits

Catalog-Commits verlagern die Commit-Koordination vom Dateisystem auf Unity Catalog, wodurch der Katalog zur einzigen maßgeblichen Quelle für den Tabellenstatus von Delta Lake und Apache Iceberg wird. Dies ermöglicht Transaktionen mit mehreren Tabellen, schnellere Abfrageplanung und gesteuerter Zugriff über alle Tabellenvorgänge hinweg.

Bei herkömmlichen Delta-Lake-Transaktionen werden die Commits auf der Ebene der einzelnen Tabellen koordiniert. Jede Tabelle verwaltet unabhängig voneinander ein eigenes Transaktionsprotokoll und die Konflikterkennung. Durch die Verlagerung der Commit-Koordination auf Katalogebene können Organisationen sämtliche Zugriffe auf das Lakehouse über Unity Catalog einheitlich verwalten. Außerdem ermöglicht es Unity Catalog, dass Commits über mehrere Tabellen hinweg innerhalb einer einzigen Transaktionsgrenze koordiniert werden, während gleichzeitig die ACID-Garantien von Delta Lake beibehalten werden.

Vorteile

Katalog-Commits bieten die folgenden Funktionen:

  • Transaktionen, die mehrere Tabellen umfassen: Führen Sie mehrere SQL-Anweisungen in mehreren Tabellen als einzelnes Atom-Commit aus. Alle Änderungen sind zusammen erfolgreich oder schlagen zusammen fehl. Siehe Transaktionen.

    Important

    Transaktionen, die in verwaltete Iceberg-Tabellen im Unity-Katalog schreiben, befinden sich in der privaten Vorschau. Um dieser Vorschau beizutreten, übermitteln Sie das Vorschauformular für verwaltete Iceberg-Tabellen.

  • Gesteuerter Zugriff: Lese- und Schreibvorgänge werden über den Unity-Katalog koordiniert, sodass der neueste verpflichtete Zustand und die Governancerichtlinien angewendet werden.

  • Schnellere Abfrageplanung und -schreibvorgänge: Unity Catalog informiert einen Delta-Client über Metadaten auf Tabellenebene direkt, wenn er auf eine Tabelle zugreift, Cloudspeicher überspringt und eine wichtige Quelle der Metadatenlatenz entfernt.

  • Erzwingbare Einschränkungen: Unity Catalog überprüft oder lehnt Schema- und Einschränkungsänderungen ab und verhindert inkompatible Updates, die datenintegritäts- oder downstream-Workloads unterbrechen könnten.

  • Externer Zugriff: Sicheres Schreiben aus externen Engines in die von Unity Catalog verwalteten Tabellen. Der Unity-Katalog koordiniert die Commits, um Datenbeschädigungen und Parallelitätskonflikte zu verhindern. Siehe Zugriff auf Databricks-Daten mithilfe externer Systeme.

    Important

    Dieses Feature befindet sich in der Betaversion. Arbeitsbereichsadministratoren können den Zugriff auf dieses Feature über die Vorschauseite steuern. Siehe Manage Azure Databricks Previews.

Requirements

  • Tabellen müssen von Unity Catalog verwaltete Tabellen (Delta oder Iceberg) sein, einschließlich Streaming-Tabellen oder materialisierter Ansichten.
  • Databricks Runtime 16.4 oder höher ist erforderlich, um aus verwalteten Tabellen mit aktivierten Katalog-Commits zu lesen, in sie zu schreiben oder sie zu erstellen.
  • Databricks Runtime 18.0 und höher ist erforderlich, um Katalogcommits für vorhandene verwaltete Tabellen zu aktivieren oder zu deaktivieren.
  • Databricks Runtime 17.3 und höher ist erforderlich, um aus Streamings-Tabellen oder materialisierten Sichten mit aktivierten Katalogcommits zu lesen oder in diese zu schreiben.
  • In Spark Declarative Pipelines ist serverlose Rechenleistung oder klassische Rechenleistung mit Databricks Runtime 17.3 und höher erforderlich, um Streaming-Tabellen oder materialisierte Ansichten mit aktivierten Katalogcommits zu lesen, zu schreiben, zu erstellen oder zu aktualisieren.
  • Databricks Runtime 18 LTS und höher ist erforderlich, um Katalogcommits für vorhandene Streamingtabellen oder materialisierte Sichten zu deaktivieren.

Katalog-Commits aktivieren

Aktivieren Sie Katalog-Commits für neue oder vorhandene verwaltete Tabellen, Streaming-Tabellen und materialisierte Ansichten.

Katalog-Commits für neue verwaltete Tabellen aktivieren

Verwenden Sie die delta.feature.catalogManaged Tabelleneigenschaft beim Erstellen einer verwalteten Tabelle:

CREATE TABLE sales_data (
  sale_id BIGINT,
  amount DECIMAL(10,2),
  sale_date DATE
)
TBLPROPERTIES ('delta.feature.catalogManaged' = 'supported');

Katalogübertragungen für bestehende verwaltete Tabellen aktivieren

Verwenden Sie ALTER TABLE, um Katalog-Commits zu einer vorhandenen verwalteten Tabelle hinzuzufügen:

ALTER TABLE sales_data SET TBLPROPERTIES ('delta.feature.catalogManaged' = 'supported');

Important

Das Aktivieren von Katalog-Commits für eine vorhandene Tabelle synchronisiert den Tabellenstatus mit dem Katalog. Dieser Vorgang kann mehrere Minuten für Tabellen mit hohen Schreibvorgängen dauern.

Aktivieren von Katalogcommits für neue oder vorhandene Streamingtabellen oder materialisierte Sichten

Füge die delta.feature.catalogManaged Tabelleneigenschaft zur Streaming-Tabelle oder der materialisierten Ansichtsdefinition hinzu und führe dann ein Update durch. Für ein bestehendes Objekt aktualisieren Sie dessen ursprüngliche Definition. ALTER TABLE ... SET TBLPROPERTIES wird nicht unterstützt.

Im folgenden Beispiel werden Katalogcommits für eine neue oder vorhandene Streamingtabelle aktiviert:

CREATE OR REFRESH STREAMING TABLE streaming_sales_data
TBLPROPERTIES ('delta.feature.catalogManaged' = 'supported')
AS SELECT * FROM STREAM sales_data;

Für eine materialisierte Ansicht verwenden Sie dieselbe Tabelleneigenschaft in ihrer CREATE OR REFRESH MATERIALIZED VIEW Definition.

Überprüfen, ob Katalog-Commits aktiviert sind

So überprüfen Sie, ob bei einer Tabelle Katalog-Commits aktiviert sind:

DESCRIBE DETAIL sales_data;

Wenn diese Option aktiviert ist, wird catalogManaged in der tableFeatures-Spalte angezeigt.

Katalogübertragungen deaktivieren

Verwenden Sie Databricks Runtime 18.0 und höher, um Catalog-Commits für eine vorhandene verwaltete Tabelle zu deaktivieren.

Für eine bestehende Streaming-Tabelle oder materialisierte Ansicht verwenden Sie Databricks Runtime 18 LTS und höher.

Weitere Informationen finden Sie unter Löschen eines Delta Lake-Tabellenfeatures und Herabstufen des Tabellenprotokolls.

Warnung

Brechen Sie Upgrade- oder Downgrade-Vorgänge nicht ab, während die Anweisungen ALTER oder DROP ausgeführt werden. Eine Unterbrechung kann die Tabelle in einem teilweise hoch- oder heruntergestuften Zustand belassen, sodass sie für alle zukünftigen Lese- und Schreibvorgänge gesperrt ist. Um rückgängig zu machen, führen Sie den entsprechenden Befehl erneut aus, anstatt den Vorgang abzubrechen. Wenden Sie sich an den Databricks-Support, wenn die Tabelle gesperrt ist.

Einschränkungen

  • Sie können Katalogcommits für vorhandene verwaltete Tabellen nicht mithilfe von CREATE OR REPLACE TABLE oder REPLACE TABLE aktivieren oder deaktivieren. Verwenden Sie CREATE TABLE mit der Eigenschaft delta.feature.catalogManaged, um sie beim Erstellen einer verwalteten Tabelle zu aktivieren, oder ALTER TABLE, um sie für eine vorhandene verwaltete Tabelle zu aktivieren oder zu deaktivieren.
  • Katalog-Comits sind nicht mit externem Datenzugriff auf Streaming-Tabellen oder materialisierten Ansichten kompatibel. Um Katalog-Commits zu verwenden, müssen Sie zuerst den externen Zugriff deaktivieren. Siehe Aktivieren des externen Datenzugriffs für Streamingtabellen und materialisierte Ansichten.
  • Tabellen mit aktivierten Katalog-Commits werden über OpenSharing mithilfe von vorsignierten URLs anstelle von Cloudtoken freigegeben.
  • Einzelbenutzercluster können nicht auf Streamingtabellen zugreifen, für die Katalog-Commits aktiviert sind.

Weitere Ressourcen