VAKUM

Berlaku untuk:check marked yes Databricks SQL check marked yes Databricks Runtime

Hapus file yang tidak digunakan dari direktori tabel.

Catatan

Perintah ini bekerja secara berbeda tergantung pada apakah Anda sedang mengerjakan tabel Delta atau Apache Spark.

Bersihkan tabel Delta

Direktori vakum secara rekursif terkait dengan tabel Delta. Untuk detail dan batasan lengkap, lihat Menghapus file data yang tidak digunakan dengan vakum.

VACUUM menghapus semua file dari direktori tabel yang tidak dikelola oleh Delta, serta file data yang tidak lagi dalam status terakhir log transaksi untuk tabel dan lebih lama dari ambang batas retensi. VACUUM akan melewati semua direktori yang dimulai dengan garis bawah (_), yang mencakup _delta_log. Mempartisi tabel Anda pada kolom yang dimulai dengan garis bawah merupakan pengecualian untuk aturan ini; VACUUM memindai semua partisi valid yang disertakan dalam tabel Delta target. File data tabel Delta dihapus sesuai dengan waktu file tersebut telah dihapus secara logis dari log transaksi Delta ditambah jam retensi, bukan stempel waktu modifikasinya pada sistem penyimpanan. Ambang batas default adalah 7.

Pada tabel Delta, Azure Databricks tidak secara otomatis memicu VACUUM operasi.

Jika Anda menjalankan VACUUM di tabel Delta, Anda kehilangan kemampuan untuk perjalanan waktu kembali ke versi yang lebih lama dari periode retensi data yang ditentukan.

Peringatan

Direkomendasikan agar Anda menetapkan interval retensi menjadi setidaknya 7 hari, karena snapshot lama dan file yang tidak diterapkan masih dapat digunakan oleh pembaca atau penulis tabel secara bersamaan. Jika VACUUM menghapus file aktif, pembaca dapat mengalami kegagalan secara serentak atau, lebih buruk lagi, tabel dapat menjadi rusak saat VACUUM menghapus file yang belum diterapkan. Anda harus memilih interval yang lebih lama dari transaksi serentak yang berjalan dengan waktu terlama dan periode terlama di mana aliran apa pun dapat tertinggal dari pembaruan tabel terbaru.

Delta Lake memiliki pemeriksaan keamanan untuk mencegah Anda menjalankan perintah berbahaya VACUUM. Dalam Databricks Runtime, Anda yakin bahwa tidak ada operasi yang dilakukan pada tabel ini yang membutuhkan waktu lebih lama dari interval retensi yang Anda rencanakan untuk ditentukan, Anda dapat menonaktifkan pemeriksaan keamanan ini dengan mengatur properti spark.databricks.delta.retentionDurationCheck.enabled konfigurasi Spark ke false.

VACUUM table_name [RETAIN num HOURS] [DRY RUN]

Parameter

  • table_name

    Mengidentifikasi tabel Delta yang sudah ada. Nama tidak boleh menyertakan spesifikasi temporal.

  • RETAIN num HOURS

    Ambang batas retensi.

  • DRY RUN

    Menampilkan daftar hingga 1000 file yang akan dihapus.

Vakum tabel non-Delta

Secara rekursif menyedot debu direktori yang terkait dengan tabel non-Delta dan menghapus file yang tidak dikomit yang lebih lama dari ambang retensi. Ambang batas default adalah 7.

Pada tabel non-Delta, Azure Databricks secara otomatis memicu VACUUM operasi saat data ditulis.

Sintaks

VACUUM table_name [RETAIN num HOURS]

Parameter

  • table_name

    Mengidentifikasi tabel yang sudah ada berdasarkan nama atau jalur.

  • RETAIN num HOURS

    Ambang batas retensi.