TABEL PERBAIKAN
Berlaku untuk: Databricks SQL Databricks Runtime
Perintah ini memperbarui metadata tabel Delta ke layanan Katalog Unity. Untuk tabel non-Delta, perintah tersebut memperbaiki partisi tabel dan memperbarui metastore Apache Hive.
- Tabel Delta: Saat dijalankan dengan tabel Delta menggunakan argumen
SYNC METADATA
, perintah ini membaca log delta tabel target dan memperbarui info metadata ke layanan Katalog Unity. - Tabel non-Delta: Saat dijalankan dengan tabel non-Delta, perintah ini memulihkan semua partisi di direktori tabel non-Delta dan memperbarui metastore Apache Hive.
Sintaks
[ MSCK ] REPAIR TABLE table_name
{
[ {ADD | DROP | SYNC} PARTITIONS] | SYNC METADATA
}
Untuk Databricks SQL Databricks Runtime 12.2 LTS ke atas, MSCK
bersifat opsional.
Parameter
-
Nama tabel. Jika tabel tidak dapat ditemukan, Azure Databricks menimbulkan kesalahan TABLE_OR_VIEW_NOT_FOUND .
ADD
atauDROP
atauSYNC
PARTITIONS
Berlaku untuk: Databricks SQL Databricks Runtime 10.4 LTS ke atas
Saat membuat tabel menggunakan klausul
PARTITIONED BY
, partisi dibuat dan terdaftar di metastore Apache Hive. Namun, jika tabel berpartisi dibuat dari data yang sudah ada, partisi tidak terdaftar secara otomatis di metastore Apache Hive. JalankanMSCK REPAIR TABLE
untuk mendaftarkan partisi.Cara lain untuk memulihkan partisi adalah dengan menggunakan ALTER TABLE RECOVER PARTITIONS.
Jika tabel di-cache, perintah akan membersihkan data cache tabel dan semua dependen yang merujuknya. Cache mengisi pada saat tabel atau dependen diakses berikutnya.
- Perintah ADD menambahkan partisi baru ke katalog sesi untuk semua sub-folder di folder tabel dasar yang bukan milik partisi tabel mana pun. ADD adalah argumen default jika tidak ada opsi lain yang ditentukan.
- Perintah DROP menghilangkan semua partisi dari katalog sesi yang tidak memiliki lokasi dalam sistem file.
- SYNC adalah kombinasi dari DROP dan ADD.
**
SYNC METADATA
**Membaca log delta tabel target dan memperbarui info metadata di layanan Katalog Unity. Untuk menjalankan perintah ini, Anda harus memiliki hak istimewa MODIFIKASI dan PILIH pada tabel target dan PENGGUNAAN skema serta katalog induk. Perintah dengan argumen ini akan gagal jika tabel target tidak disimpan di Katalog Unity.
Jika Delta UniForm diaktifkan,
SYNC METADATA
memicu konversi manual metadata Delta saat ini ke metadata Iceberg dan menyinkronkan versi Iceberg terbaru untuk titik akhir Unity Catalog Iceberg. Lihat Menggunakan UniForm untuk membaca tabel Delta dengan klien Iceberg.
Contoh (tabel non-Delta Lake)
-- create a partitioned table from existing data /tmp/namesAndAges.parquet
> CREATE TABLE t1 (name STRING, age INT) USING parquet PARTITIONED BY (age)
LOCATION "/tmp/namesAndAges.parquet";
-- SELECT * FROM t1 does not return results
> SELECT * FROM t1;
-- run MSCK REPAIR TABLE to recovers all the partitions
> MSCK REPAIR TABLE t1;
-- SELECT * FROM t1 returns results
> SELECT * FROM t1;
name age
------- ---
Michael 20
Justin 19
Andy 30
Contoh (tabel Katalog Unity)
-- run MSCK REPAIR TABLE t1 SYNC METADATA to update the metadata info to Unity Catalog service
> MSCK REPAIR TABLE t1 SYNC METADATA