Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: Databricks SQL
Databricks Runtime
Perintah ini memperbaiki atau memodifikasi partisi untuk tabel.
Gunakan klausa SYNC METADATA
dengan Delta Lake untuk memperbarui layanan katalog berdasarkan metadata tabel, atau untuk menghasilkan metadata Apache Iceberg bagi tabel yang diaktifkan untuk pembacaan dengan Iceberg. Jangan gunakan SYNC METADATA
saat Anda memodifikasi partisi untuk tabel non-Delta Lake.
Fungsionalitas yang didukung tergantung pada apakah tabel terdaftar di Unity Catalog atau Hive metastore dan apakah tabel didukung oleh Delta Lake.
Sintaks
[ MSCK ] REPAIR TABLE table_name
{
[ {ADD | DROP | SYNC} PARTITIONS] | SYNC METADATA
}
Untuk Databricks SQL yang ditandai "ya" serta Databricks Runtime 12.2 LTS ke atas, bersifat opsional.
Parameter-parameternya
-
Nama dari tabel tersebut. Jika tabel tidak dapat ditemukan, Azure Databricks menimbulkan kesalahan TABLE_OR_VIEW_NOT_FOUND .
ADD
atau atauDROP
SYNC
PARTITIONS
Berlaku untuk:
Databricks SQL
Databricks Runtime 10.4 LTS ke atas
Saat membuat tabel non-Delta menggunakan klausa
PARTITIONED BY
, partisi dihasilkan dan didaftarkan di metastore Apache Hive. Namun, jika Anda membuat tabel yang dipartisi dari data yang 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 menghapus data yang di-cache tabel dan semua dependen yang merujuk ke tabel tersebut. Cache akan terisi ketika tabel atau dependennya diakses berikutnya.
- Perintah ADD menambahkan partisi baru ke katalog sesi untuk semua sub-folder di folder tabel dasar yang bukan milik partisi tabel apa pun. ADD adalah argumen default jika tidak ada opsi lain yang ditentukan.
- Perintah DROP menghilangkan semua partisi dari katalog sesi yang memiliki lokasi yang tidak ada dalam sistem file.
- SYNC adalah kombinasi dari DROP dan ADD.
SYNC METADATA
Delta Lake saja.
Jika konfigurasi
spark.databricks.delta.catalog.update.enabled
diatur ketrue
, pembaruan metadata tabel target secara otomatis disinkronkan ke layanan katalog. Jika tidak, sinkronisasi manual yang menggunakanREPAIR TABLE table_name SYNC METADATA
mungkin diperlukan.Membaca log transaksi tabel target dan memperbarui info metadata di layanan katalog. Untuk menjalankan perintah ini, Anda harus memiliki hak istimewa MODIFIKASI dan SELECT pada tabel target dan hak istimewa USE SCHEMA dan USE CATALOG pada skema dan katalog induk.
Argumen ini kompatibel dengan metastore Apache Hive di Databricks Runtime 16.1 atau yang lebih tinggi. Untuk tabel metastore Hive, Anda harus memiliki izin PENGGUNAAN dan MODIFIKASI.
Jika Delta UniForm diaktifkan (memerlukan Unity Catalog),
SYNC METADATA
memicu konversi manual metadata Delta saat ini ke metadata Iceberg dan menyinkronkan versi Iceberg terbaru untuk titik akhir Unity Catalog Iceberg. Lihat Membaca tabel Delta dengan klien Iceberg.Anda dapat menggunakan
REPAIR TABLE table_name SYNC METADATA
untuk menerapkan model izin Unity Catalog ke salinan dangkal yang Anda baca dari katalog asing yang dibuat menggunakan federasi metastore Hive. Lihat Bekerja dengan klon dangkal.
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