REPAIR TABLE
Şunlar için geçerlidir: Databricks SQL Databricks Runtime
Bu komut Delta tablosu meta verilerini Unity Kataloğu hizmetine güncelleştirir. Delta olmayan tablolar için tablonun bölümlerini onarır ve Hive meta veri depolarını güncelleştirir.
- Delta tabloları: Bu komut, bağımsız değişkenini kullanarak
SYNC METADATA
Delta tablolarıyla yürütürken hedef tablonun delta günlüğünü okur ve meta veri bilgilerini Unity Kataloğu hizmetine güncelleştirir. - Delta olmayan tablolar: Delta olmayan tablolarla yürütürken, bu komut Delta olmayan bir tablonun dizinindeki tüm bölümleri kurtarır ve Hive meta veri deposunu güncelleştirir.
Sözdizimi
[ MSCK ] REPAIR TABLE table_name
{
[ {ADD | DROP | SYNC} PARTITIONS] | SYNC METADATA
}
Databricks SQL Databricks Runtime 12.2 LTS ve üzeri MSCK
için isteğe bağlıdır.
Parametreler
-
Tablonun adı. Tablo bulunamazsa Azure Databricks bir TABLE_OR_VIEW_NOT_FOUND hatası oluşturur.
ADD
veya veyaDROP
SYNC
PARTITIONS
Şunlar için geçerlidir: Databricks SQL Databricks Runtime 10.4 LTS ve üzeri
yan tümcesini
PARTITIONED BY
kullanarak Delta olmayan bir tablo oluştururken bölümler oluşturulur ve Hive meta veri deposuna kaydedilir. Ancak, bölümlenmiş tabloyu mevcut verilerden oluşturursanız bölümler Hive meta veri deposuna otomatik olarak kaydedilmez. Bölümleri kaydetmek için komutunu çalıştırınMSCK REPAIR TABLE
.Bölümleri kurtarmanın bir diğer yolu da ALTER TABLE RECOVER PARTITIONS kullanmaktır.
Tablo önbelleğe alınmışsa, komut tablonun önbelleğe alınmış verilerini ve buna başvuran tüm bağımlıları temizler. Tabloya veya bağımlılara bir sonraki erişildiğinde önbellek doldurulur.
- ADD komutu, temel tablo klasöründeki hiçbir tablo bölümüne ait olmayan tüm alt klasörler için oturum kataloğuna yeni bölümler ekler. BAŞKA seçenek belirtilmezse ADD varsayılan bağımsız değişkendir.
- DROP komutu, oturum kataloğundaki dosya sisteminde mevcut olmayan konumlara sahip tüm bölümleri bırakır.
- SYNC, DROP ve ADD'nin birleşimidir.
**
SYNC METADATA
**Hedef tablonun delta günlüğünü okur ve Unity Kataloğu hizmetindeki meta veri bilgilerini güncelleştirir. Bu komutu çalıştırmak için, hedef tabloda MODIFY ve SELECT ayrıcalıklarına ve üst şema ve kataloğun KULLANIMIna sahip olmanız gerekir. Hedef tablo Unity Kataloğu'nda depolanmazsa, bu bağımsız değişkene sahip bu komut başarısız olur.
Delta UniForm etkinleştirilirse,
SYNC METADATA
geçerli Delta meta verilerinin Iceberg meta verilerine el ile dönüştürülmesi tetiklenir ve Unity Kataloğu Iceberg uç noktası için en son Iceberg sürümünü eşitler. Bkz . Iceberg istemcileriyle Delta tablolarını okumak için UniForm kullanma.
Örnekler (Delta Lake olmayan tablolar)
-- 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
Örnek (Unity Kataloğu tablosu)
-- run MSCK REPAIR TABLE t1 SYNC METADATA to update the metadata info to Unity Catalog service
> MSCK REPAIR TABLE t1 SYNC METADATA