Tingkat isolasi dan konflik penulisan

Halaman ini menjelaskan tingkat isolasi dan menulis perilaku konflik untuk tabel Delta Lake di Azure Databricks.

Delta Lake menyediakan jaminan transaksi ACID antara pembacaan dan penulisan.

  • Penulis: Beberapa penulis di beberapa kluster dapat secara bersamaan memodifikasi partisi tabel. Penulis melihat tampilan snapshot tabel yang konsisten dan penulisan dilakukan dalam urutan serial.
  • Pembaca: Pembaca terus melihat rekam jepret konsisten dari tabel yang digunakan oleh pekerjaan Azure Databricks, bahkan jika tabel dimodifikasi selama pekerjaan berlangsung.

Lihat Apa itu jaminan ACID di Azure Databricks?.

Nota

Azure Databricks menggunakan Delta Lake untuk semua tabel secara default.

Topik isolasi

Topik Deskripsi
Tingkat isolasi (WriteSerializable dan Serializable) Bagaimana kedua tingkat isolasi memengaruhi operasi bersamaan dan cara mengonfigurasinya.
Konkurensi tingkat baris Bagaimana deteksi konflik tingkat baris mengurangi konflik tulis untuk operasi bersamaan pada file data yang sama.

Untuk informasi tentang isolasi transaksi, perilaku rekam jepret, dan penanganan konflik, lihat Isolasi transaksi.

Konflik perubahan metadata

Perubahan metadata menyebabkan semua operasi tulis bersamaan gagal. Operasi ini mencakup perubahan pada protokol tabel, properti tabel, atau skema data.

Pembacaan streaming gagal ketika menemukan commit yang mengubah metadata tabel. Jika Anda ingin aliran dilanjutkan, Anda harus memulai ulang. Untuk metode yang direkomendasikan, lihat Pertimbangan produksi untuk Streaming Terstruktur.

Berikut ini adalah contoh kueri yang mengubah metadata:

-- 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);

Langkah berikutnya