Sdílet prostřednictvím


REPAIR TABLE

Platí pro:zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano Databricks Runtime

Tento příkaz opraví nebo upraví oddíly pro tabulky, které nejsou typu Delta Lake. Pomocí klauzule SYNC METADATA s Delta Lake aktualizujte službu katalogu na základě metadat tabulek nebo vygenerujte metadata Icebergu pro tabulky povolené pro čtení Icebergu.

Podporované funkce se liší mezi katalogem Unity a metastorem Hive a tím, jestli jsou tabulky zálohované službou Delta Lake.

Syntaxe

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

Pro zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano Databricks Runtime 12.2 LTS a vyšší MSCK je volitelné.

Parametry

  • table_name

    Název tabulky. Pokud se tabulka nenašla, Azure Databricks vyvolá chybu TABLE_OR_VIEW_NOT_FOUND.

  • ADDnebo DROPSYNCPARTITIONS

    Platí pro:zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano Databricks Runtime 10.4 LTS a vyšší

    Při vytváření tabulky, která není delta pomocí klauzule PARTITIONED BY, se oddíly vygenerují a zaregistrují v metastore Hive. Pokud však vytvoříte dělenou tabulku z existujících dat, oddíly se automaticky nezaregistrují v metastoru Hive. Spuštěním zaregistrujte MSCK REPAIR TABLE oddíly.

    Dalším způsobem obnovení oddílů je použití ALTER TABLE OBNOVIT ODDÍLY.

    Pokud je tabulka uložená v mezipaměti, příkaz vymaže data uložená v mezipaměti tabulky a všechny závislé položky, které na ni odkazují. Mezipaměť vyplní při příštím přístupu k tabulce nebo závislým objektům.

    • příkaz přidat přidá nové oddíly do katalogu relace pro všechny podsložky uvnitř složky základní tabulky, které nepatří do žádných oddílů tabulky. Funkce ADD je výchozí argument, pokud není zadána žádná jiná možnost.
    • Příkaz DROP odstraní všechny oddíly z katalogu relací, které mají neexistující umístění v systému souborů.
    • SYNC je kombinace DROP a ADD.
  • SYNC METADATA

    Pouze Delta Lake.

    Přečte transakční protokol cílové tabulky a aktualizuje informace o metadatech ve službě katalogu. Pokud chcete tento příkaz spustit, musíte mít oprávnění MODIFY a SELECT v cílové tabulce a USE SCHEMA a USE CATALOG oprávnění nadřazeného schématu a katalogu.

    Tento argument funguje s metastorem Hive v Databricks Runtime 16.1 a novějším. U tabulek metastoru Hive musíte mít oprávnění USAGE a MODIFY.

    Pokud je povolený Delta UniForm (vyžaduje katalog Unity), SYNC METADATA aktivuje ruční převod aktuálních metadat Delta na metadata Icebergu a synchronizuje nejnovější verzi Icebergu pro koncový bod Iceberg katalogu Unity. Viz Čtení tabulek Delta s klienty Iceberg.

Příklady (tabulky jiné než 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

Příklad (tabulka katalogu Unity)

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