Apa itu vektor penghapusan?

Vektor penghapusan adalah fitur pengoptimalan penyimpanan yang dapat diaktifkan di 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, UPDATEdan MERGE menggunakan vektor penghapusan untuk menandai baris yang ada sebagai dihapus atau diubah tanpa menulis ulang file Parquet. Pembacaan berikutnya pada tabel menyelesaikan status tabel saat ini dengan menerapkan penghapusan yang dicatat oleh vektor penghapusan ke versi tabel terbaru.

Databricks merekomendasikan penggunaan Databricks Runtime 14.3 LTS ke atas untuk menulis tabel dengan vektor penghapusan untuk memanfaatkan 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 pembaruan ini diproduksi oleh I/O prediktif. 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.

Anda mengaktifkan dukungan untuk vektor penghapusan pada tabel Delta Lake dengan mengatur properti tabel Delta Lake. Anda mengaktifkan vektor penghapusan selama pembuatan tabel atau mengubah tabel yang sudah ada, seperti dalam contoh berikut:

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 Menghilangkan fitur tabel 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 saat file data ditulis ulang, seperti yang dipicu oleh salah satu peristiwa berikut:

  • 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 TABEL REORG.

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 pada saat tabel selesai, yang merupakan tanda waktu yang harus Anda pertimbangkan untuk ambang retensi agar operasi Anda VACUUM menghapus file yang dihapus sepenuhnya. Lihat Menghapus file data yang tidak digunakan dengan vakum.

Kompatibilitas dengan klien Delta

Azure Databricks memanfaatkan vektor penghapusan untuk mendukung I/O prediktif untuk pembaruan pada komputasi yang diaktifkan Photon. Lihat Menggunakan I/O prediktif untuk mempercepat pembaruan.

Dukungan untuk memanfaatkan 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 vektor penghapusan operasi tulis mana yang memanfaatkan penghapusan:

Klien Menulis vektor penghapusan Vektor penghapusan baca
Runtime Databricks dengan Photon MERGEMendukung , 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. Apache Spark sumber terbuka: Memerlukan delta-sharing-spark 3.1 atau lebih tinggi.

Catatan

Untuk dukungan di klien Delta lainnya, lihat dokumentasi integrasi OSS Delta Lake.

Batasan

  • UniForm tidak mendukung vektor penghapusan.
  • Anda dapat mengaktifkan vektor penghapusan untuk tampilan Materialisasi, tetapi untuk menonaktifkan vektor penghapusan untuk tampilan Materialisasi, Anda harus menghilangkan tampilan Materialisasi dan membuatnya kembali.
  • Anda tidak dapat membuat file manifes untuk tabel dengan vektor penghapusan yang ada. Untuk menghasilkan manifes, jalankan REORG TABLE ... APPLY (PURGE) dan pastikan bahwa tidak ada operasi tulis bersamaan yang berjalan.
  • Anda tidak dapat secara bertahap membuat file manifes untuk tabel dengan vektor penghapusan diaktifkan.