Menggunakan pelacakan baris untuk tabel Delta
Pelacakan baris Delta Lake memungkinkan Azure Databricks melacak silsilah baris dalam tabel Delta. Fitur ini diperlukan untuk beberapa pembaruan bertahap pada tampilan materialisasi.
Penting
Pelacakan baris Delta Lake tersedia di Databricks Runtime 14.1 ke atas.
Pelacakan baris adalah fitur tabel dan menggunakan protokol penulisan tabel yang lebih tinggi daripada beberapa klien Delta Lake. Versi protokol tabel tidak dapat diturunkan tingkatnya, dan tabel dengan pelacakan baris diaktifkan tidak dapat ditulis oleh klien Delta Lake yang tidak mendukung semua fitur tabel protokol penulis Delta yang diaktifkan. Lihat Bagaimana Azure Databricks mengelola kompatibilitas fitur Delta Lake?.
Mengaktifkan pelacakan baris
Anda harus secara eksplisit mengaktifkan pelacakan baris dengan mengatur properti tabel delta.enableRowTracking = true
.
Anda dapat melakukan ini selama pembuatan tabel, seperti dalam contoh berikut:
CREATE TABLE table_name
TBLPROPERTIES (delta.enableRowTracking = true)
AS SELECT * FROM source_table;
Anda dapat mengubah tabel yang sudah ada untuk mengaktifkan pelacakan baris, seperti dalam contoh berikut:
ALTER TABLE table_name SET TBLPROPERTIES (delta.enableRowTracking = true);
Penting
Mengaktifkan pelacakan baris pada tabel yang ada secara otomatis menetapkan ID baris dan versi penerapan baris ke semua baris yang ada dalam tabel. Proses ini dapat mengakibatkan pembuatan beberapa versi baru tabel dan dapat memakan waktu yang signifikan.
Mengkloning tabel Delta membuat riwayat terpisah, sehingga ID baris dan versi penerapan baris pada tabel kloning tidak cocok dengan yang ada di tabel asli.
Apa skema bidang metadata untuk pelacakan baris?
Pelacakan baris menambahkan dua bidang metadata tersembunyi ke tabel. Anda bisa secara eksplisit menambahkan bidang ini ke kueri Anda untuk mengembalikan nilai.
Nama kolom | Jenis | Nilai | Penjelasan |
---|---|---|---|
_metadata.row_id |
Panjang | Pengidentifikasi unik baris. | Baris menyimpan ID yang sama setiap kali dimodifikasi menggunakan MERGE pernyataan atau UPDATE . |
_metadata.row_commit_version |
Panjang | Log Delta atau versi tabel tempat baris terakhir disisipkan atau diperbarui. | Baris diberi versi baru setiap kali dimodifikasi menggunakan MERGE pernyataan atau UPDATE . |
Beberapa operasi menyimpan bidang metadata ini menggunakan log transaksi. Menjalankan operasi OPTIMIZE
atau REORG
pada tabel dengan pelacakan baris diaktifkan menulis ulang file data untuk menyimpan bidang ini.
Menonaktifkan pelacakan baris
Anda dapat menonaktifkan pelacakan baris dengan mengatur properti tabel ke false
.
ALTER TABLE table_name SET TBLPROPERTIES (delta.enableRowTracking = false);
Penting
Menonaktifkan pelacakan baris tidak menghapus fitur tabel yang sesuai dan tidak menurunkan versi protokol tabel. Ini juga tidak menghapus bidang metadata dari tabel target.
Dengan pelacakan baris dinonaktifkan, ID baris yang dihasilkan tidak lagi dapat diandalkan untuk melacak baris unik.
Batasan
ID baris dan bidang metadata versi penerapan baris tidak dapat diakses saat membaca umpan data perubahan. Harap lihat Menggunakan umpan data perubahan Delta Lake pada Azure Databricks.