Bagaimana Azure Databricks mengelola kompatibilitas fitur Delta Lake?
Delta Lake adalah proyek sumber terbuka independen di bawah tata kelola Linux Foundation. Databricks memperkenalkan dukungan untuk fitur dan pengoptimalan Delta Lake baru yang dibangun di atas Delta Lake dalam rilis Databricks Runtime.
Pengoptimalan Azure Databricks yang memanfaatkan fitur Delta Lake menghormati protokol yang digunakan di OSS Delta Lake untuk kompatibilitas.
Banyak pengoptimalan Azure Databricks memerlukan pengaktifan fitur Delta Lake pada tabel. Fitur Delta Lake selalu kompatibel mundur, sehingga tabel yang ditulis oleh versi Databricks Runtime yang lebih rendah selalu dapat dibaca dan ditulis oleh versi Databricks Runtime yang lebih tinggi. Mengaktifkan beberapa fitur dapat mengganggu kompatibilitas ke depan dengan beban kerja yang berjalan pada versi Databricks Runtime yang lebih rendah. Untuk fitur yang mengganggu kompatibilitas ke depan, Anda harus memperbarui semua beban kerja yang mereferensikan tabel yang ditingkatkan untuk menggunakan versi Databricks Runtime yang kompatibel.
Catatan
Anda dapat menghilangkan deletionVectors
, v2Checkpoint
, columnMapping
, typeWidening-preview
, dan collations-preview
di Azure Databricks. Lihat fitur penghapusan tabel Delta.
Penting
Semua operasi perubahan protokol berkonflik dengan semua penulisan secara bersamaan.
Pembacaan streaming gagal ketika menemukan commit yang mengubah metadata tabel. Jika Anda ingin aliran berlanjut, Anda harus memulai ulang. Untuk metode yang direkomendasikan, lihat Pertimbangan produksi untuk Streaming Terstruktur.
Fitur apa dari Delta Lake yang memerlukan peningkatan Runtime Databricks?
Fitur Delta Lake berikut memecah kompatibilitas ke depan. Fitur diaktifkan berdasarkan tabel demi tabel. Tabel ini mencantumkan versi Databricks Runtime terendah yang masih didukung oleh Azure Databricks.
Fitur | Memerlukan versi Databricks Runtime atau yang lebih baru | Dokumentasi |
---|---|---|
CHECK batasan |
Databricks Runtime 9.1 LTS |
Mengatur batasan CHECK di Azure Databricks |
Mengubah umpan data | Databricks Runtime 9.1 LTS | Menggunakan umpan data perubahan Delta Lake pada Azure Databricks |
Kolom yang dihasilkan | Runtime Databricks 9.1 LTS | kolom yang diciptakan oleh Delta Lake |
Pemetaan kolom | Runtime Databricks10.4 LTS | Ganti nama dan hapus kolom dengan pemetaan kolom Delta Lake |
Kolom identitas | Databricks Runtime 10.4 LTS | Gunakan kolom identitas di Delta Lake |
Fitur-fitur pada tabel | Databricks Runtime 12.2 LTS | Apa itu fitur tabel? |
Vektor penghapusan | Databricks Runtime 12.2 LTS | Apa itu vektor penghapusan? |
Penanda waktu NTZ | Databricks Runtime 13.3 LTS |
TIMESTAMP_NTZ tipe |
Seragam | Databricks Runtime 13.3 LTS | Membaca tabel Delta dengan klien Iceberg |
Pengklusteran cairan | Databricks Runtime 13.3 LTS | Menggunakan pengklusteran cair untuk tabel Delta |
Pelacakan baris | Databricks Runtime 14.1 | Menggunakan pelacakan baris untuk tabel Delta |
Pelebaran tipe | Databricks Runtime 15.2 | Pelesiran jenis |
Varian | Databricks Runtime 15.3 | Dukungan varian di Delta Lake |
Kolas | Databricks Runtime 16.1 | Dukungan Kolasi untuk Delta Lake |
Lihat catatan rilis versi dan kompatibilitas Databricks Runtime.
Catatan
DLT dan Databricks SQL secara otomatis meningkatkan lingkungan runtime dengan rilis reguler untuk mendukung fitur baru. Lihat catatan rilis DLT dan proses peningkatan rilis serta catatan rilis SQL Databricks .
Apa itu spesifikasi protokol tabel?
Setiap tabel Delta memiliki spesifikasi protokol yang menunjukkan sekumpulan fitur yang didukung tabel. Spesifikasi protokol digunakan oleh aplikasi yang membaca atau menulis tabel untuk menentukan apakah mereka dapat menangani semua fitur yang didukung tabel. Jika aplikasi tidak tahu cara menangani fitur yang terdaftar sebagai didukung dalam protokol tabel, aplikasi tersebut tidak dapat membaca atau menulis tabel tersebut.
Spesifikasi protokol dipisahkan menjadi dua komponen: protokol baca dan protokol tulis.
Peringatan
Kebanyakan peningkatan versi protokol bersifat permanen, dan peningkatan versi protokol mungkin merusak pembaca atau penulis tabel Delta Lake yang ada, atau keduanya. Databricks merekomendasikan Anda meningkatkan tabel tertentu hanya jika diperlukan, seperti ikut serta ke fitur baru di Delta Lake. Anda juga harus memeriksa untuk memastikan bahwa semua alat produksi Anda saat ini dan yang akan datang mendukung tabel Delta Lake dengan versi protokol baru.
Penurunan protokol tersedia untuk beberapa fitur. Lihat fitur tabel Drop Delta .
Baca protokol
Protokol baca mencantumkan semua fitur yang didukung tabel dan yang harus dipahami aplikasi untuk membaca tabel dengan benar. Meningkatkan protokol baca tabel mengharuskan semua aplikasi pembaca mendukung fitur yang ditambahkan.
Penting
Semua aplikasi yang menulis ke tabel Delta harus dapat membuat rekam jepret tabel. Dengan demikian, beban kerja yang menulis ke tabel Delta harus mematuhi persyaratan protokol pembacaan dan penulisan.
Jika Anda menemukan protokol yang tidak didukung oleh beban kerja di Azure Databricks, Anda harus meningkatkan ke Databricks Runtime yang lebih tinggi yang mendukung protokol tersebut.
Menulis sebuah protokol
Protokol tulis mencantumkan semua fitur yang didukung tabel dan yang harus dipahami aplikasi untuk menulis ke tabel dengan benar. Meningkatkan protokol tulis tabel mengharuskan semua aplikasi penulis mendukung fitur tambahan. Ini tidak memengaruhi aplikasi baca-saja, kecuali protokol baca juga ditingkatkan.
Protokol mana yang harus dimutakhirkan?
Beberapa fitur memerlukan peningkatan protokol baca dan protokol tulis. Fitur lain hanya memerlukan peningkatan protokol tulis.
Sebagai contoh, dukungan untuk CHECK
batasan adalah fitur dari protokol tulis: hanya aplikasi penulisan yang perlu mengetahui tentang CHECK
batasan dan menerapkannya.
Sebaliknya, pemetaan kolom memerlukan peningkatan protokol baca dan tulis. Karena data disimpan secara berbeda dalam tabel, aplikasi pembaca harus memahami pemetaan kolom sehingga mereka dapat membaca data dengan benar.
Versi pembaca dan penulis minimum
Catatan
Anda harus meningkatkan versi protokol tabel secara eksplisit saat mengaktifkan pemetaan kolom.
Saat Anda mengaktifkan fitur Delta pada tabel, protokol tabel akan dimutakhirkan secara otomatis. Databricks merekomendasikan untuk tidak mengubah properti tabel minReaderVersion
dan minWriterVersion
. Mengubah properti tabel ini tidak mencegah pemutakhiran protokol. Mengatur nilai-nilai ini ke nilai yang lebih rendah tidak menurunkan tabel. Lihat fitur tabel Delta Drop .
Apa itu fitur tabel?
Dalam Databricks Runtime 12.2 LTS ke atas, fitur tabel Delta Lake memperkenalkan bendera granular yang menentukan fitur mana yang didukung oleh tabel tertentu. Di Databricks Runtime 11.3 LTS dan di bawahnya, fitur Delta Lake diaktifkan dalam bundel yang disebut versi protokol. Fitur tabel adalah penerus versi protokol dan dirancang dengan tujuan peningkatan fleksibilitas untuk klien yang membaca dan menulis Delta Lake. Lihat Apa itu versi protokol?.
Catatan
Fitur tabel memiliki persyaratan versi protokol. Lihat Fitur menurut versi protokol.
Fitur tabel Delta adalah penanda yang menunjukkan bahwa tabel mendukung fitur tertentu. Setiap fitur adalah fitur protokol tulis (yang berarti hanya meningkatkan protokol tulis) atau fitur protokol baca/tulis (yang berarti protokol baca dan tulis ditingkatkan untuk mengaktifkan fitur).
Untuk mempelajari selengkapnya tentang fitur tabel yang didukung di Delta Lake, lihat protokol Delta Lake.
Apakah fitur tabel mengubah bagaimana fitur Delta Lake diaktifkan?
Jika Anda hanya berinteraksi dengan tabel Delta melalui Azure Databricks, Anda dapat terus melacak dukungan fitur Delta Lake dengan menggunakan persyaratan minimum untuk Databricks Runtime. Azure Databricks mendukung pembacaan tabel Delta yang telah ditingkatkan ke fitur tabel di semua rilis LTS Runtime Databricks, selama semua fitur yang digunakan oleh tabel didukung oleh rilis tersebut.
Jika Anda membaca dan menulis dari tabel Delta menggunakan sistem lain, Anda mungkin perlu mempertimbangkan bagaimana fitur tabel memengaruhi kompatibilitas, karena ada risiko bahwa sistem tidak dapat memahami versi protokol yang ditingkatkan.
Penting
Fitur tabel diperkenalkan ke format Delta Lake untuk penulis versi 7 dan pembaca versi 3. Azure Databricks telah melakukan backport kode ke semua versi LTS Runtime Databricks yang didukung untuk menambahkan dukungan untuk fitur tabel, tetapi hanya untuk fitur-fitur yang sudah didukung pada Databricks Runtime. Ini berarti bahwa meskipun Anda dapat memilih untuk menggunakan fitur tabel untuk mengaktifkan kolom yang dihasilkan dan masih bekerja dengan tabel ini di Databricks Runtime 9.1 LTS, tabel dengan kolom identitas diaktifkan (yang memerlukan Databricks Runtime 10.4 LTS) masih tidak didukung di Databricks Runtime tersebut.
Apa itu versi protokol?
Versi protokol adalah nomor protokol yang menunjukkan pengelompokan fitur tabel tertentu. Di Databricks Runtime 11.3 LTS dan di bawahnya, Anda tidak dapat mengaktifkan fitur tabel satu per satu. Versi protokol menggabungkan sekelompok fitur.
Tabel Delta menentukan versi protokol terpisah untuk protokol baca dan protokol tulis. Log transaksi untuk tabel Delta berisi informasi penerapan versi protokol yang mendukung evolusi Delta Lake. Lihat Tinjau detail tabel Delta Lake dengan perintah describe detail.
Versi protokol menggabungkan semua fitur dari protokol sebelumnya. Lihat Fitur menurut versi protokol.
Catatan
Dimulai dengan penulis versi 7 dan pembaca versi 3, Delta Lake telah memperkenalkan konsep fitur tabel. Dengan menggunakan fitur tabel, Anda sekarang dapat memilih untuk hanya mengaktifkan fitur yang didukung oleh klien lain dalam ekosistem data Anda. Lihat Apa itu fitur tabel?.
Fitur menurut versi protokol
Tabel berikut ini memperlihatkan versi protokol minimum yang diperlukan untuk fitur Delta Lake.
Catatan
Jika Anda hanya peduli dengan kompatibilitas Databricks Runtime, lihat Fitur Delta Lake apa yang memerlukan peningkatan Runtime Databricks?. Delta Sharing hanya mendukung pembacaan tabel dengan fitur yang memerlukan minReaderVersion
= 1
.
Fitur | minWriterVersion |
minReaderVersion |
Dokumentasi |
---|---|---|---|
Fungsionalitas dasar | 2 | 1 | Apa itu Danau Delta? |
CHECK batasan |
3 | 1 |
Mengatur batasan CHECK di Azure Databricks |
Mengubah umpan data | 4 | 1 | Menggunakan umpan data perubahan Delta Lake pada Azure Databricks |
Kolom yang dihasilkan | 4 | 1 | kolom yang dihasilkan oleh Delta Lake |
Pemetaan kolom | 5 | 2 | Ganti nama dan hapus kolom dengan pemetaan kolom Delta Lake |
Kolom identitas | 6 | 2 | Gunakan kolom identitas di Delta Lake |
Fitur membaca tabel | 7 | 1 | Apa itu fitur tabel? |
Penulisan Fitur Tabel | 7 | 3 | Apa itu fitur tabel? |
Pelacakan baris | 7 | 1 | Menggunakan pelacakan baris untuk tabel Delta |
Vektor penghapusan | 7 | 3 | Apa itu vektor penghapusan? |
Tanda waktuNTZ | 7 | 3 |
TIMESTAMP_NTZ jenis |
Pengklusteran cairan | 7 | 3 | Menggunakan pengklusteran cair untuk tabel Delta |
Seragam | 7 | 2 | Membaca tabel Delta dengan klien Iceberg |
Peluasan tipe | 7 | 3 | Perluasan tipe |
Varian | 7 | 3 | Dukungan varian di Delta Lake |
Kolasi | 7 | 3 | dukungan Pengurutan untuk Delta Lake |