REPAIR TABLE

Şunlar için geçerlidir: onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş 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
}

onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime 12.2 LTS ve üzeri MSCK için isteğe bağlıdır.

Parametreler

  • table_name

    Tablonun adı. Tablo bulunamazsa Azure Databricks bir TABLE_OR_VIEW_NOT_FOUND hatası oluşturur.

  • ADDveya veya DROPSYNCPARTITIONS

    Şunlar için geçerlidir: onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş 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ın MSCK 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