TABEL PERBAIKAN

Berlaku untuk:centang ditandai ya Databricks SQL centang ditandai ya 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 centang ditandai ya Databricks SQL centang ditandai ya Databricks Runtime 12.2 LTS ke atas, MSCK bersifat opsional.

Parameter

  • table_name

    Nama tabel. Jika tabel tidak dapat ditemukan, Azure Databricks menimbulkan kesalahan TABLE_OR_VIEW_NOT_FOUND .

  • ADD atau DROP atau SYNCPARTITIONS

    Berlaku untuk:centang ditandai ya Databricks SQL centang ditandai ya 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. Jalankan MSCK 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 Format Universal (UniForm) untuk kompatibilitas Iceberg dengan tabel Delta.

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