Apa itu vektor penghapusan?
Vektor penghapusan adalah fitur pengoptimalan penyimpanan yang dapat Anda aktifkan pada tabel Delta Lake. Secara default, ketika satu baris di dalam file data dihapus, seluruh file Parquet yang berisi catatan harus ditulis ulang. Dengan vektor penghapusan diaktifkan untuk operasi tabel, , DELETE
, UPDATE
dan MERGE
menggunakan vektor penghapusan untuk menandai baris yang ada sebagai dihapus atau diubah tanpa menulis ulang file Parquet. Bacaan berikutnya pada tabel menyelesaikan status tabel saat ini dengan menerapkan penghapusan yang ditunjukkan oleh vektor penghapusan ke versi tabel terbaru.
Databricks merekomendasikan penggunaan Databricks Runtime 14.3 LTS ke atas untuk menulis tabel dengan vektor penghapusan untuk menggunakan semua pengoptimalan. Anda dapat membaca tabel dengan vektor penghapusan yang diaktifkan di Databricks Runtime 12.2 LTS ke atas.
Di Databricks Runtime 14.2 ke atas, tabel dengan vektor penghapusan mendukung konkurensi tingkat baris. Lihat Menulis konflik dengan konkurensi tingkat baris.
Catatan
Foton memanfaatkan vektor penghapusan untuk pembaruan I/O prediktif, mempercepat DELETE
, MERGE
, dan UPDATE
operasi. Semua klien yang mendukung vektor penghapusan baca dapat membaca pembaruan yang menghasilkan vektor penghapusan, terlepas dari apakah I/O prediktif menghasilkan pembaruan ini. Lihat Menggunakan I/O prediktif untuk mempercepat pembaruan.
Aktifkan vektor penghapusan
Penting
Pengaturan admin ruang kerja mengontrol apakah vektor penghapusan diaktifkan secara otomatis untuk tabel Delta baru. Lihat Mengaktifkan vektor penghapusan secara otomatis.
Jika pengaturan ruang kerja untuk mengontrol pengaktifan otomatis vektor penghapusan digunakan, maka, berdasarkan opsi yang dipilih untuk jenis tabel, vektor penghapusan diaktifkan secara default saat Anda membuat tabel baru menggunakan gudang SQL atau Databricks Runtime 14.1 atau di atasnya. Vektor penghapusan tidak diaktifkan secara default saat Anda membuat tampilan materialisasi atau Tabel streaming dan harus diaktifkan secara manual saat Anda membuat tampilan materialisasi atau tabel Streaming.
Untuk mengaktifkan dukungan secara manual untuk vektor penghapusan pada tabel atau tampilan, gunakan delta.enableDeletionVectors
properti tabel. Anda dapat mengaktifkan vektor penghapusan secara manual pada tabel delta saat membuat atau mengubah tabel. Anda dapat mengaktifkan vektor penghapusan secara manual pada tampilan materialisasi atau tabel Streaming hanya saat Anda membuat tampilan materialisasi atau tabel Streaming. Anda tidak dapat menggunakan ALTER
pernyataan untuk mengaktifkan vektor penghapusan pada tampilan materialisasi atau tabel Streaming.
CREATE TABLE <table-name> [options] TBLPROPERTIES ('delta.enableDeletionVectors' = true);
ALTER TABLE <table-name> SET TBLPROPERTIES ('delta.enableDeletionVectors' = true);
Peringatan
Saat Anda mengaktifkan vektor penghapusan, protokol tabel ditingkatkan. Setelah memutakhirkan, tabel tidak akan dapat dibaca oleh klien Delta Lake yang tidak mendukung vektor penghapusan. Lihat Bagaimana Azure Databricks mengelola kompatibilitas fitur Delta Lake?.
Di Databricks Runtime 14.1 ke atas, Anda dapat menghilangkan fitur tabel vektor penghapusan untuk mengaktifkan kompatibilitas dengan klien Delta lainnya. Lihat fitur tabel Drop Delta .
Menerapkan perubahan pada file data Parquet
Vektor penghapusan menunjukkan perubahan pada baris sebagai penghapusan sementara yang secara logis memodifikasi file data Parquet yang ada di tabel Delta Lake. Perubahan ini diterapkan secara fisik ketika salah satu peristiwa berikut menyebabkan file data ditulis ulang:
- Perintah
OPTIMIZE
dijalankan pada tabel. - Pemadatan otomatis memicu penulisan ulang file data dengan vektor penghapusan.
-
REORG TABLE ... APPLY (PURGE)
dijalankan terhadap tabel.
Peristiwa yang terkait dengan pemadatan file tidak memiliki jaminan ketat untuk menyelesaikan perubahan yang dicatat dalam vektor penghapusan, dan beberapa perubahan yang dicatat dalam vektor penghapusan mungkin tidak diterapkan jika file data target tidak akan menjadi kandidat untuk pemadatan file.
REORG TABLE ... APPLY (PURGE)
menulis ulang semua file data yang berisi rekaman dengan modifikasi yang direkam menggunakan vektor penghapusan. Lihat REORG TABLE.
Catatan
Data yang dimodifikasi mungkin masih ada di file lama. Anda dapat menjalankan VACUUM untuk menghapus file lama secara fisik.
REORG TABLE ... APPLY (PURGE)
membuat versi baru tabel saat selesai. Waktu penyelesaian ini adalah tanda waktu yang harus Anda pertimbangkan untuk ambang batas retensi agar operasi Anda VACUUM
dapat menghapus file yang dihapus sepenuhnya. Lihat Menghapus file data yang tidak digunakan dengan vakum.
Kompatibilitas dengan klien Delta
Azure Databricks menggunakan vektor penghapusan untuk mendukung I/O prediktif untuk pembaruan pada komputasi yang diaktifkan Photon. Lihat Menggunakan I/O prediktif untuk mempercepat pembaruan.
Dukungan untuk menggunakan vektor penghapusan untuk baca dan tulis bervariasi menurut klien.
Tabel berikut menunjukkan versi klien yang diperlukan untuk membaca dan menulis tabel Delta dengan vektor penghapusan diaktifkan dan menentukan operasi tulis mana yang menggunakan vektor penghapusan:
Klien | Menulis vektor penghapusan | Vektor penghapusan baca |
---|---|---|
Runtime Databricks dengan Photon |
MERGE Mendukung , UPDATE , dan DELETE menggunakan Databricks Runtime 12.2 LTS ke atas. |
Memerlukan Databricks Runtime 12.2 LTS atau lebih tinggi. |
Runtime Databricks tanpa Photon |
DELETE Mendukung penggunaan Databricks Runtime 12.2 LTS ke atas.
UPDATE Mendukung penggunaan Databricks Runtime 14.1 ke atas.
MERGE Mendukung penggunaan Databricks Runtime 14.3 LTS ke atas. |
Memerlukan Databricks Runtime 12.2 LTS atau lebih tinggi. |
OSS Apache Spark dengan OSS Delta Lake |
DELETE Mendukung penggunaan OSS Delta 2.4.0 ke atas.
UPDATE Mendukung penggunaan OSS Delta 3.0.0 ke atas. |
Memerlukan OSS Delta 2.3.0 atau lebih tinggi. |
Penerima Berbagi Delta | Penulisan tidak didukung pada tabel Berbagi Delta | Databricks: Memerlukan DBR 14.1 atau lebih tinggi. Sumber terbuka Apache Spark: Memerlukan delta-sharing-spark 3.1 atau lebih tinggi. |
Catatan
Untuk dukungan dengan klien Delta lainnya, lihat dokumentasi integrasi OSS Delta Lake.
Batasan
- UniForm tidak mendukung vektor penghapusan.
- Anda tidak dapat menggunakan pernyataan GENERATE untuk menghasilkan file manifes untuk tabel yang memiliki file menggunakan vektor penghapusan. Untuk menghasilkan manifes, pertama-tama jalankan REORG TABLE ... Pernyataan APPLY (PURGE) lalu jalankan pernyataan
GENERATE
. Anda harus memastikan bahwa tidak ada operasi tulis bersamaan yang berjalan saat Anda mengirimkanREORG
pernyataan. - Anda tidak dapat secara bertahap menghasilkan file manifes untuk tabel dengan vektor penghapusan diaktifkan (misalnya, dengan mengatur properti
delta.compatibility.symlinkFormatManifest.enabled=true
tabel ). - Jika Anda mengaktifkan vektor penghapusan pada tampilan materialisasi atau tabel Streaming dan kemudian menonaktifkan vektor penghapusan, penulisan di masa mendatang ke tampilan atau tabel dicegah menggunakan vektor penghapusan, tetapi vektor penghapusan yang ada tidak dihapus.
- Anda tidak dapat menurunkan tingkat protokol tabel setelah mengaktifkan vektor penghapusan pada tampilan materialisasi atau tabel Streaming. Setelah mengaktifkan, fitur tabel untuk vektor penghapusan tidak dapat dihapus, bahkan jika Anda kemudian menonaktifkan vektor penghapusan pada tampilan atau tabel.