Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Protokol tabel Delta Lake menentukan fitur mana yang harus didukung klien untuk membaca atau menulis tabel. Halaman ini mencakup versi protokol, fitur tabel, persyaratan kompatibilitas, dan cara Azure Databricks mengelola peningkatan protokol. Lihat juga Meninjau detail tabel dengan menjelaskan detailnya.
Protokol dan kompatibilitas tabel
Setiap tabel Delta Lake memiliki spesifikasi protokol yang menunjukkan serangkaian kemampuan yang diperlukan untuk membaca dari dan menulis ke tabel. Aplikasi menggunakan spesifikasi protokol untuk menentukan apakah aplikasi dapat mendukung semua fitur yang digunakan tabel. Jika aplikasi tidak dapat mendukung fitur dalam protokol tabel saat ini, aplikasi tersebut tidak dapat membaca atau menulis tabel tersebut.
Sebagian besar kemampuan baru Delta Lake mengharuskan Anda untuk meningkatkan protokol tabel.
Tabel berikut ini mencantumkan istilah kunci yang menjelaskan protokol Delta Lake:
| Istilah | Deskripsi |
|---|---|
| Klien Delta Lake | Sistem apa pun yang membaca atau menulis ke tabel Delta Lake. |
| Baca protokol | Menentukan dukungan yang diperlukan klien Delta Lake untuk membaca tabel. |
| Menulis sebuah protokol | Menentukan dukungan yang diperlukan klien Delta Lake untuk menulis ke tabel. |
minReaderVersion |
Nilai bilangan bulat protokol pembaca. Nilai yang valid adalah 1, 2, atau 3. |
minWriterVersion |
Nilai bilangan bulat protokol penulis. Nilai yang valid adalah bilangan 2 bulat melalui 7. |
| Fitur tabel | Alternatif halus untuk versi protokol yang digunakan saat minReaderVersion = 3 dan minWriterVersion = 7. Fitur-fitur tabel dipetakan ke fitur-fitur Delta Lake yang dapat diaktifkan secara opsional. |
| Fitur penulis | Fitur tabel yang memerlukan dukungan klien tulis tetapi tidak memblokir akses baca-saja. |
| Fitur pembaca | Fitur tabel yang memerlukan dukungan klien baca dan tulis. Lihat Versi protokol dan fitur tabel. |
Protokol tulis dan fitur penulis hanya memengaruhi kompatibilitas dengan klien penulis, memungkinkan akses baca-saja ke tabel dari beban kerja warisan.
Tidak semua fitur Delta Lake kompatibel satu sama lain.
Beberapa fitur tabel tidak dapat dihilangkan setelah diaktifkan. Lihat Menghilangkan fitur tabel Delta Lake dan menurunkan protokol tabel.
Versi protokol dan fitur tabel
Semua tabel Delta Lake menyertakan versi protokol berbasis bilangan bulat yang diwakili oleh minReaderVersion dan minWriterVersion. Setiap versi menggabungkan beberapa fitur bersama-sama, dan fitur bersifat kumulatif di seluruh versi. Untuk mematuhi protokol Delta Lake, klien harus menerapkan dukungan untuk semua fitur dalam versi tertentu, termasuk semua fitur yang dirilis sebelumnya.
Di Databricks Runtime 12.2 LTS ke atas, fitur tabel menggantikan protokol berbasis bilangan bulat dengan bendera terperinci yang menunjukkan fitur mana yang digunakan tabel. Ini memungkinkan pemeriksaan kompatibilitas yang lebih halus antara klien dan tabel.
Fitur penulis tabel memengaruhi cara data ditulis. Mereka memerlukan minWriterVersion=7 tetapi tidak memblokir klien pembaca.
Fitur pembaca tabel memengaruhi cara data dibaca. Semua fitur pembaca juga merupakan fitur penulis, dan memerlukan minReaderVersion=3 dan minWriterVersion=7. Klien tidak dapat menulis ke tabel yang tidak dapat dibaca.
Saat fitur tabel diaktifkan, fitur tersebut muncul dalam protokol sebagai readerFeatures atau writerFeatures. Delta Lake menyelesaikan protokol tabel ke versi terendah yang mendukung semua fitur yang diaktifkan. Lihat Protokol terendah yang mungkin.
Note
Azure Databricks menyertakan dukungan parsial yang tidak melanggar untuk fitur tabel di semua versi Runtime Databricks yang didukung. Klien OSS Delta Lake memilih cara menerapkan dukungan untuk fitur tertentu.
Perubahan protokol
Protokol untuk tabel berubah dalam kondisi berikut:
- Jika fitur baru diaktifkan, protokol akan ditingkatkan.
- Jika fitur tabel dihilangkan, protokol diturunkan.
Menonaktifkan fitur tabel tidak mengakibatkan penurunan protokol. Anda harus menghilangkan fitur untuk menghapusnya sepenuhnya dari protokol. Tidak semua fitur tabel dapat dihilangkan. Lihat Menghilangkan fitur tabel Delta Lake dan menurunkan protokol tabel.
Semua operasi perubahan protokol bertentangan dengan penulisan bersamaan. Pembacaan streaming gagal ketika menemukan commit yang mengubah metadata tabel. Untuk melanjutkan, mulai ulang aliran yang terpengaruh. Untuk metode yang direkomendasikan, lihat Pertimbangan produksi untuk Streaming Terstruktur.
Note
Databricks merekomendasikan agar Anda tidak pernah langsung mengubah minReaderVersion properti tabel dan minWriterVersion . Mengubah properti ini tidak mencegah peningkatan protokol, dan mengaturnya ke nilai yang lebih rendah tidak menurunkan tabel. Lihat Menghilangkan fitur tabel Delta Lake dan menurunkan protokol tabel.
Apa yang memicu peningkatan protokol
Saat Anda mengaktifkan fitur, protokol tabel dimutakhirkan secara otomatis.
Peningkatan protokol dipicu dengan cara berikut:
- Aktifkan secara otomatis berdasarkan sintaks yang digunakan dalam
CREATEpernyataan atauALTER. Misalnya,CLUSTER BYdalamCREATE TABLEpernyataan secara otomatis mengaktifkan pengklusteran cairan, danGENERATED ALWAYS ASmemungkinkan kolom yang dihasilkan. - Aktifkan secara eksplisit melalui properti tabel. Misalnya, pengaturan
'delta.enableDeletionVectors' = truememungkinkan vektor penghapusan. - Mengaktifkan fitur mungkin secara otomatis mengaktifkan fitur yang diperlukan. Misalnya, mengaktifkan UniForm secara otomatis mengaktifkan pemetaan kolom, dan mengaktifkan pengklusteran cairan secara otomatis mengaktifkan titik pemeriksaan V2. Tinjau dokumentasi Azure Databricks yang relevan untuk menentukan fitur tabel mana yang diperlukan fitur tertentu.
Fitur pembaca meningkatkan protokol baca dan tulis. Misalnya, pemetaan kolom adalah fitur pembaca dan memerlukan peningkatan kedua protokol karena data disimpan secara berbeda dalam penyimpanan.
Fitur penulis, seperti CHECK batasan, hanya meningkatkan protokol tulis.
Warning
Sebagian besar peningkatan versi protokol tidak dapat diubah dan mungkin merusak pembaca tabel Delta Lake, penulis, atau keduanya yang ada. Tingkatkan tabel tertentu hanya jika diperlukan, dan verifikasi bahwa semua alat produksi saat ini dan yang akan datang mendukung versi protokol baru.
Penurunan protokol tersedia untuk beberapa fitur. Lihat Menghilangkan fitur tabel Delta Lake dan menurunkan protokol tabel.
Protokol semurah mungkin
Delta Lake menyelesaikan protokol tabel ke versi terendah yang mendukung semua fitur yang diaktifkan. Ini hanya dapat menurunkan minReaderVersion atau minWriterVersion, tidak pernah menaikkannya. Fitur tabel tidak pernah dihapus secara otomatis. Gunakan DROP FEATURE untuk menghapus fitur tabel dari protokol.
Jika semua fitur yang diaktifkan didukung penuh pada versi protokol berbasis bilangan bulat yang lebih rendah, tabel mungkin kembali ke versi tersebut dan menghilangkan readerFeatures atau writerFeatures dari protokol. Ini tidak menonaktifkan fitur apa pun. Versi protokol yang lebih rendah meningkatkan kompatibilitas karena semua klien harus menghormatinya.
kompatibilitas Runtime Azure Databricks dan Databricks
Azure Databricks memperkenalkan dukungan untuk fitur Delta Lake baru dalam rilis Databricks Runtime:
- Tabel yang ditulis oleh versi Databricks Runtime yang lebih rendah memiliki dukungan baca dan tulis penuh dalam versi Databricks Runtime yang lebih tinggi.
- Tabel yang ditulis oleh versi Databricks Runtime yang lebih tinggi mungkin menggunakan fitur tabel yang tidak didukung dalam versi Databricks Runtime yang lebih rendah.
- Beberapa fitur memungkinkan penulisan dari versi Runtime Databricks yang lebih rendah tanpa sepenuhnya menerapkan semua pengoptimalan untuk fitur yang diaktifkan.
Jika Anda hanya menggunakan tabel Delta Lake melalui Azure Databricks, Anda hanya perlu melacak dukungan fitur menggunakan persyaratan Databricks Runtime minimum. Jika Anda membaca atau menulis tabel dari sistem eksternal, Anda harus memverifikasi bahwa klien tersebut mendukung fitur tabel yang diaktifkan pada tabel Anda.
Dukungan fitur tabel backported
Dalam Databricks Runtime 12.2 LTS ke atas, fitur tabel menggantikan protokol berbasis bilangan bulat dengan bendera terperinci yang menunjukkan fitur mana yang digunakan tabel.
Azure Databricks memiliki dukungan fitur tabel yang didukung ke Databricks Runtime 11.3 LTS dan di bawahnya, alih-alih hanya mendukung versi protokol bilangan bulat, tetapi hanya untuk fitur yang sudah didukung dalam rilis tersebut.
Misalnya, Anda dapat membaca dari dan menulis ke tabel dengan kolom yang dihasilkan diaktifkan menggunakan fitur tabel di Databricks Runtime 9.1 LTS. Namun, Anda tidak dapat menggunakan Databricks Runtime 9.1 LTS untuk membaca dan menulis ke tabel dengan kolom identitas yang diaktifkan menggunakan fitur tabel karena kolom identitas memerlukan Databricks Runtime 10.4 LTS ke atas.
Saat menggunakan fitur tabel dengan dukungan backported, beberapa operasi yang tersedia dalam versi Databricks Runtime tertentu mungkin tidak tersedia dalam versi OSS Delta Lake yang sesuai. Jika arsitektur Anda menyertakan klien OSS Delta Lake, uji kompatibilitas sebelum mengaktifkan fitur tabel pada tabel produksi.
Fitur Delta Lake dan versi Runtime Databricks yang diperlukan
Tabel berikut mencantumkan versi Databricks Runtime terendah dengan dukungan penuh untuk setiap fitur, sehingga semua kemampuan yang tersedia secara umum untuk baca dan tulis didukung.
| Fitur | Memerlukan versi Databricks Runtime atau yang lebih baru | Documentation |
|---|---|---|
CHECK batasan |
Semua versi Databricks Runtime yang didukung |
CHECK Kendala |
| Mengubah aliran data | Semua versi Databricks Runtime yang didukung | Gunakan umpan data perubahan pada Azure Databricks |
| Kolom Terbentuk | Semua versi Databricks Runtime yang didukung | Kolom hasil buatan Delta Lake |
| Pemetaan kolom | Semua versi Databricks Runtime yang didukung | Ganti nama dan hapus kolom dengan pemetaan kolom Delta Lake |
| kolom identitas | Semua versi Databricks Runtime yang didukung | Kolom identitas |
| Fitur-fitur pada tabel | Semua versi Databricks Runtime yang didukung | Versi protokol dan fitur tabel |
| Vektor penghapusan | Semua versi Databricks Runtime yang didukung | Vektor Penghapusan pada Databricks |
| TimestampNTZ | Databricks Runtime 13.3 LTS |
TIMESTAMP_NTZ jenis |
| Seragam | Databricks Runtime 13.3 LTS | Membaca tabel Delta Lake dengan klien Iceberg menggunakan UniForm |
| Pengklusteran cairan | Databricks Runtime 13.3 LTS | Menggunakan pengklusteran cairan untuk tabel |
| Pelacakan baris data | Databricks Runtime 14.3 LTS | Pelacakan baris di Azure Databricks |
| Perluasan Tipe | Databricks Runtime 15.4 LTS | Perluasan tipe |
| Variant | Databricks Runtime 15.4 LTS | Dukungan jenis varian untuk Apache Iceberg dan Delta Lake |
| Collations | Databricks Runtime 16.1 | Dukungan Kolasi untuk Delta Lake |
| Titik pemeriksaan terproteksi | Databricks Runtime 16.3 | Menghilangkan fitur tabel Delta Lake dan menurunkan protokol tabel |
| Penerapan katalog | Waktu Operasi Databricks 16.4 LTS | Penerapan katalog |
Lihat catatan rilis versi dan kompatibilitas Databricks Runtime.
Note
Alur Lakeflow dan Databricks SQL secara otomatis meningkatkan lingkungan runtime dengan rilis reguler untuk mendukung fitur baru. Lihat Catatan rilis alur Lakeflow dan proses peningkatan rilis dan catatan rilis Databricks SQL.
Fitur menurut versi protokol
Note
Untuk kompatibilitas Databricks Runtime, lihat kompatibilitas Azure Databricks dan Databricks Runtime.
Delta Lake menggunakan nilai minReaderVersion dan minWriterVersion yang terpisah untuk menentukan kemampuan protokol. Protokol Delta Lake sumber terbuka telah distandarkan pada fitur tabel, tetapi beberapa klien masih menggunakan penerapan versi protokol warisan. Karena beberapa klien mungkin tidak mendukung semua fitur, Databricks merekomendasikan agar Anda memverifikasi dengan dokumentasi klien dan menguji kompatibilitas sebelum mengaktifkan fitur baru pada tabel produksi.
Apache Iceberg menggunakan satu format-version dan bukan versi pembaca dan penulis terpisah. Versi format Iceberg menunjukkan fitur mana yang tersedia tetapi tidak mengamanatkan penggunaannya. Fitur bersifat opsional, kecuali untuk pelacakan baris yang wajib dalam format versi 3. Saat fitur menunjukkan N/A di kolom Iceberg, fitur khusus Delta tanpa Iceberg langsung yang setara.
Tabel berikut mencantumkan persyaratan versi protokol untuk fitur tabel Delta Lake dan Apache Iceberg. Jenis fitur menunjukkan apakah fitur harus dihormati untuk penulisan saja atau untuk baca dan tulis.
| Fitur | Delta minWriterVersion |
Delta minReaderVersion |
Gunung Es format-version |
Jenis fitur |
|---|---|---|---|---|
| Fungsionalitas dasar | 2 | 1 | 1 | Penulis |
CHECK Batasan |
3 | 1 | N/A | Penulis |
| Mengubah umpan data | 4 | 1 | N/A | Penulis |
| Kolom yang dihasilkan | 4 | 1 | N/A | Penulis |
| Pemetaan kolom | 5 | 2 | N/A | Pembaca dan penulis |
| Kolom identitas | 6 | 1 | N/A | Penulis |
| Pelacakan baris | 7 | 1 | 3 | Penulis |
| Vektor penghapusan | 7 | 3 | 3 | Pembaca dan penulis |
| Tanda waktuNTZ | 7 | 3 | 1 | Pembaca dan penulis |
| Pengklusteran cairan | 7 | 3 | 1 | Pembaca dan penulis (1) |
| Pembaca Iceberg (UniForm) | 7 | 2 | N/A | Penulis (2) |
| Perluasan tipe | 7 | 3 | N/A | Pembaca dan penulis |
| Varian | 7 | 3 | 3 | Pembaca dan penulis |
| Penghancutan varian | 7 | 3 | 3 | Pembaca dan penulis |
| Kolasi | 7 | 3 | N/A | Pembaca dan penulis |
| Titik pemeriksaan terproteksi | 7 | 1 | N/A | Penulis |
| Penerapan katalog | 7 | 3 | N/A | Pembaca dan penulis |
(1): Pengklusteran cairan mengimplementasikan partisi tersembunyi.