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.
Artikel ini menjelaskan cara menghilangkan fitur tabel Delta Lake dan menurunkan versi protokol.
Fungsionalitas ini tersedia di Databricks Runtime 16.3 ke atas. Tidak semua fitur tabel Delta dapat dihilangkan. Lihat Fitur tabel Delta apa yang bisa dihilangkan?.
Anda hanya boleh menggunakan DROP FEATURE untuk mendukung kompatibilitas dengan versi Databricks Runtime sebelumnya, Delta Sharing, atau klien pembaca atau penulis Delta Lake eksternal.
Catatan
Dukungan warisan untuk DROP FEATURE tersedia mulai dari Databricks Runtime 14.3 LTS. Databricks merekomendasikan penggunaan Databricks Runtime 16.3 ke atas untuk semua DROP FEATURE perintah, yang menggantikan perilaku warisan. Untuk dokumentasi fungsionalitas warisan, lihat Menghilangkan fitur tabel Delta (warisan).
Menghilangkan fitur Delta Lake
Untuk menghilangkan fitur tabel, gunakan sintaks berikut:
ALTER TABLE <table-name> DROP FEATURE <feature-name>
Anda harus menggunakan Databricks Runtime 16.3 atau lebih tinggi dan memiliki MODIFY hak istimewa pada tabel Delta target. Anda hanya dapat menghilangkan satu fitur tabel dengan setiap DROP FEATURE perintah.
Lihat ALTER TABLE untuk detail selengkapnya.
Penting
Semua DROP FEATURE operasi bertentangan dengan semua penulisan 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.
Apa yang terjadi ketika fitur tabel dihilangkan?
Saat Anda menghilangkan fitur tabel, Delta Lake secara atom menerapkan perubahan pada tabel untuk menyelesaikan hal berikut:
- Nonaktifkan properti tabel yang menggunakan fitur tabel.
- Tulis ulang file data seperlunya untuk menghapus semua jejak fitur tabel dari file data yang mendukung tabel dalam versi saat ini.
- Buat sekumpulan titik pemeriksaan terproteksi yang memungkinkan klien pembaca menginterpretasikan riwayat tabel dengan benar.
- Tambahkan fitur
checkpointProtectiontabel penulis ke protokol tabel. - Turunkan tingkat protokol tabel ke versi pembaca dan penulis terendah yang mendukung semua fitur tabel yang tersisa. Lihat Protokol terendah yang mungkin.
Apa itu checkpointProtection fitur tabel?
Saat Anda menghilangkan fitur, Delta Lake menulis ulang data dan metadata dalam riwayat tabel sebagai titik pemeriksaan yang dilindungi untuk menghormati penurunan protokol. Setelah penurunan tingkat, tabel harus selalu dapat dibaca oleh lebih banyak klien pembaca. Ini karena protokol untuk tabel sekarang mencerminkan bahwa dukungan untuk fitur yang dihilangkan tidak lagi diperlukan untuk membaca tabel. Titik pemeriksaan yang dilindungi dan fitur checkpointProtection melakukan hal berikut:
- Klien pembaca yang memahami fitur tabel yang dihilangkan dapat mengakses semua riwayat tabel yang tersedia.
- Klien pembaca yang tidak mendukung fitur tabel yang dihilangkan hanya perlu membaca riwayat tabel mulai dari versi penurunan protokol.
- Klien penulis tidak menulis ulang titik pemeriksaan sebelum protokol diturunkan.
- Operasi pemeliharaan tabel memenuhi persyaratan yang ditetapkan oleh
checkpointProtection, yang menandai titik pemeriksaan penurunan versi protokol sebagai dilindungi.
Meskipun Anda hanya dapat menghilangkan satu fitur tabel dengan setiap DROP FEATURE perintah, tabel dapat memiliki beberapa titik pemeriksaan yang dilindungi dan fitur yang dihilangkan dalam riwayat tabelnya.
Semua versi Databricks Runtime mendukung fitur tabel checkpointProtection, yang berarti fitur tabel ini tidak memblokir bacaan atau tulis di Azure Databricks.
Fitur checkpointProtection tabel tidak boleh memblokir akses baca-saja dari klien OSS Delta Lake. Untuk sepenuhnya menurunkan tingkat tabel dan menghapus checkpointProtection fitur tabel, Anda harus menggunakan TRUNCATE HISTORY. Databricks merekomendasikan hanya menggunakan pola ini jika Anda perlu menulis ke tabel dengan klien Delta eksternal yang tidak mendukung checkpointProtection. Lihat Protokol tabel yang sepenuhnya diturunkan untuk klien lama.
Fitur tabel Delta apa yang dapat dihilangkan?
Anda bisa menghilangkan fitur tabel Delta berikut ini:
-
catalogManaged. Lihat Penerapan katalog. -
checkConstraints. Lihat Constraints di Azure Databricks. -
collations-preview. Lihat Dukungan kolasi untuk Delta Lake. -
columnMapping. Lihat Mengganti nama dan menghapus kolom dengan pemetaan kolom Delta Lake. -
deletionVectors. Lihat Vektor penghapusan di Databricks. -
typeWidening. Lihat Pelebaran tipe. -
v2Checkpoint. Lihat Beralih ke versi klasik. -
checkpointProtection. Lihat Apa itu fiturcheckpointProtectiontabel?.
Anda tidak dapat menghilangkan fitur tabel Delta lainnya.
Penting
Menghilangkan pemetaan kolom dari tabel tidak menghapus awalan acak yang digunakan dalam nama direktori untuk tabel yang dipartisi. Lihat Apakah Danau Delta dan Parquet berbagi strategi pemartisian?.
Beberapa fungsionalitas Delta Lake memungkinkan berbagai fitur tabel. Beberapa fitur tabel bergantung pada fitur tabel lain, dan mungkin memblokir penghapusan fitur tabel dependen. Karena beberapa fitur tabel tidak dapat dihilangkan, ini berarti bahwa pengaktifan untuk beberapa fitur Delta Lake tidak dapat digulung balik.
Databricks merekomendasikan untuk selalu menguji beban kerja dan sistem dependen untuk kompatibilitas dengan fungsionalitas baru sebelum mengaktifkan fungsionalitas yang meningkatkan protokol pembaca atau penulis untuk data produksi.
Protokol tabel diturunkan sepenuhnya untuk klien lama
Jika integrasi dengan klien Delta Lake eksternal memerlukan penulisan yang tidak mendukung checkpointProtection fitur tabel, Anda harus menggunakan TRUNCATE HISTORY untuk sepenuhnya menghapus semua jejak fitur tabel yang dinonaktifkan dan sepenuhnya menurunkan tingkat protokol tabel.
Databricks merekomendasikan pengujian perilaku bawaan untuk DROP FEATURE sebelum melanjutkan dengan TRUNCATE HISTORY. Menjalankan TRUNCATE HISTORY menghapus semua riwayat tabel yang lebih besar dari 24 jam.
Penurunan tabel penuh terjadi melalui dua tahap yang harus dilakukan dengan jarak minimal 24 jam.
Langkah 1: Bersiap untuk menghilangkan fitur tabel
Selama tahap pertama, pengguna bersiap untuk menghilangkan fitur tabel. Berikut ini menjelaskan apa yang terjadi selama tahap ini:
- Anda menjalankan perintah
ALTER TABLE <table-name> DROP FEATURE <feature-name> TRUNCATE HISTORY. - Properti tabel yang secara khusus mengaktifkan fitur tabel memiliki nilai yang diatur untuk menonaktifkan fitur.
- Properti tabel yang mengontrol perilaku yang terkait dengan fitur yang dihilangkan memiliki opsi yang diatur ke nilai default sebelum fitur diperkenalkan.
- Jika perlu, file data dan metadata ditulis ulang sehubungan dengan properti tabel yang diperbarui.
- Perintah selesai berjalan dan mengembalikan pesan kesalahan yang memberi tahu pengguna bahwa mereka harus menunggu 24 jam untuk melanjutkan penghapusan fitur.
Setelah terlebih dahulu menonaktifkan fitur, Anda dapat terus menulis ke tabel target sebelum menyelesaikan penurunan protokol, tetapi Anda tidak dapat menggunakan fitur tabel yang Anda hapus.
Catatan
Jika Anda membiarkan tabel dalam status ini, operasi terhadap tabel tidak menggunakan fitur tabel, tetapi protokol masih mendukung fitur tabel. Hingga Anda menyelesaikan langkah penurunan tingkat akhir, tabel tidak dapat dibaca oleh klien Delta yang tidak memahami fitur tabel.
Langkah 2: Menurunkan tingkat protokol dan menghilangkan fitur tabel
Untuk sepenuhnya menghapus semua riwayat transaksi yang terkait dengan fitur dan menurunkan tingkat protokol:
- Setelah setidaknya 24 jam berlalu, Anda menjalankan
ALTER TABLE <table-name> DROP FEATURE <feature-name> TRUNCATE HISTORYperintah. - Klien mengonfirmasi bahwa tidak ada transaksi dalam ambang retensi yang ditentukan menggunakan fitur tabel, lalu memotong riwayat tabel ke ambang batas tersebut.
- Fitur tabel dihilangkan selama penurunan protokol.
- Jika fitur tabel yang ada dalam tabel dapat diwakili oleh versi protokol yang lebih rendah,
minReaderVersiondanminWriterVersionuntuk tabel diturunkan ke versi terendah yang mendukung fitur yang tersisa yang digunakan oleh tabel Delta.
Penting
Menjalankan ALTER TABLE <table-name> DROP FEATURE <feature-name> TRUNCATE HISTORY menghapus semua data log transaksi yang lebih lama dari 24 jam. Setelah menggunakan perintah ini untuk menurunkan tingkat protokol tabel, Anda tidak memiliki akses ke riwayat tabel atau perjalanan waktu.