REPAIR TABLE

A következőkre vonatkozik:jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL jelölje be az igennel jelölt jelölőnégyzetet Databricks Runtime

Ez a parancs frissíti a Delta-tábla metaadatait a Unity Catalog szolgáltatásban. Nem Delta-táblák esetén a rendszer helyreállítja a tábla partícióit, és frissíti a Hive metaadattárat.

  • Delta-táblák: Ha deltatáblákkal hajtja végre az argumentumot, ez a SYNC METADATA parancs beolvassa a céltábla deltanaplóját, és frissíti a metaadatok adatait a Unity Catalog szolgáltatásban.
  • Nem Delta-táblák: Ha nem Delta-táblákkal hajtják végre, ez a parancs helyreállítja a nem Delta tábla könyvtárában lévő összes partíciót, és frissíti a Hive metaadattárat.

Syntax

[ MSCK ] REPAIR TABLE table_name
{
    [ {ADD | DROP | SYNC} PARTITIONS] | SYNC METADATA
}

A jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL jelölje be az igennel jelölt jelölőnégyzetet Databricks Runtime 12.2 LTS és újabb MSCK verziója nem kötelező.

Paraméterek

  • table_name

    A tábla neve. Ha a tábla nem található, az Azure Databricks TABLE_OR_VIEW_NOT_FOUND hibát jelez.

  • ADDvagy DROPSYNCPARTITIONS

    A következőkre vonatkozik:jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL jelölje be az igennel jelölt jelölőnégyzetet Databricks Runtime 10.4 LTS és újabb

    Ha nem Delta-táblát hoz létre a záradék használatával, a PARTITIONED BY rendszer létrehozza és regisztrálja a partíciókat a Hive metaadattárában. Ha azonban meglévő adatokból hozza létre a particionált táblát, a rendszer nem regisztrálja automatikusan a partíciókat a Hive metaadattárában. Futtassa MSCK REPAIR TABLE a partíciók regisztrálását.

    A partíciók helyreállításának másik módja az ALTER TABLE RECOVER PARTÍCIÓK használata.

    Ha a tábla gyorsítótárazva van, a parancs törli a tábla gyorsítótárazott adatait és az arra hivatkozó összes függőt. A gyorsítótár a tábla vagy a függők legközelebbi elérésekor tölti ki a gyorsítótárat.

    • Az ADD parancs új partíciókat ad hozzá a munkamenet-katalógushoz az alaptáblamappában lévő összes almappához, amelyek nem tartoznak táblapartíciókhoz. Az ADD az alapértelmezett argumentum, ha nincs más beállítás megadva.
    • A DROP parancs elveti az összes partíciót a munkamenetkatalógusból, amelyek nem létező helyekkel rendelkeznek a fájlrendszerben.
    • A SYNC a DROP és az ADD kombináció.
  • ** SYNC METADATA**

    Beolvassa a céltábla deltanaplóját, és frissíti a metaadatok adatait a Unity Catalog szolgáltatásban. A parancs futtatásához a szülőséma és -katalógus céltábláján és HASZNÁLATában a MODIFY és Standard kiadás LECT jogosultságokkal kell rendelkeznie. Ez az argumentummal rendelkező parancs sikertelen lesz, ha a céltáblát nem a Unity Catalog tárolja.

    Ha a Delta UniForm engedélyezve van, aktiválja az aktuális Delta-metaadatok manuális konvertálását Iceberg-metaadatokká, SYNC METADATA és szinkronizálja a Unity Catalog Iceberg végpontjának legújabb Iceberg-verzióját. Lásd: Az UniForm használata a Delta-táblák iceberg-ügyfelekkel való olvasásához.

Példák (nem Delta Lake-táblák)

-- 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

Példa (Unity Catalog-táblázat)

-- run MSCK REPAIR TABLE t1 SYNC METADATA to update the metadata info to Unity Catalog service
> MSCK REPAIR TABLE t1 SYNC METADATA