Freigeben über


Isolationsstufen und Schreibkonflikte

Auf dieser Seite werden Isolationsstufen und das Schreiben von Konfliktverhalten für Delta Lake-Tabellen in Azure Databricks beschrieben.

Delta Lake bietet ACID-Transaktionsgarantien zwischen Lese- und Schreibvorgängen:

  • Autoren: Mehrere Autoren über mehrere Cluster hinweg können gleichzeitig eine Tabellenpartition ändern. Autoren sehen eine konsistente Momentaufnahme der Tabelle, und Schreibvorgänge erfolgen in einer festgelegten Reihenfolge.
  • Leser: Leser sehen weiterhin eine konsistente Momentaufnahmeansicht der Tabelle, mit der der Azure Databricks-Auftrag gestartet wurde, auch wenn eine Tabelle während eines Auftrags geändert wird.

Weitere Informationen finden Sie unter Was sind ACID-Garantien in Azure Databricks?.

Hinweis

Azure Databricks verwendet Delta Lake standardmäßig für alle Tabellen.

Themen zur Isolierung

Thema Beschreibung
Isolationsstufen (WriteSerializable und Serializable) Wie sich die beiden Isolationsebenen auf gleichzeitige Vorgänge auswirken und wie sie konfiguriert werden.
Konkurrenz auf Zeilenebene So reduziert die Konflikterkennung auf Zeilenebene Schreibkonflikte für gleichzeitige Vorgänge in denselben Datendateien.

Informationen zur Transaktionsisolation, zum Snapshotverhalten und zur Konfliktbehandlung finden Sie unter Transaktionsisolation.

Konflikte bei Metadatenänderungen

Metadatenänderungen führen dazu, dass alle gleichzeitigen Schreibvorgänge fehlschlagen. Zu diesen Vorgängen gehören Änderungen am Tabellenprotokoll, an Tabelleneigenschaften oder Datenschemas.

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

Im Folgenden sind Beispiele für Abfragen aufgeführt, die Metadaten ändern:

-- Set a table property
ALTER TABLE table_name SET TBLPROPERTIES ('delta.isolationLevel' = 'Serializable')

-- Enable a feature using a table property and update the table protocol
ALTER TABLE table_name SET TBLPROPERTIES ('delta.enableDeletionVectors' = true);

-- Drop a table feature
ALTER TABLE table_name DROP FEATURE deletionVectors;

-- Upgrade to UniForm
REORG TABLE table_name APPLY (UPGRADE UNIFORM(ICEBERG_COMPAT_VERSION=2));

-- Update the table schema
ALTER TABLE table_name ADD COLUMNS (col_name STRING);

Nächste Schritte