REPAIR TABLE
Platí pro: Databricks SQL Databricks Runtime
Tento příkaz aktualizuje metadata tabulky Delta do služby Katalogu Unity. U tabulek jiných než Delta opraví oddíly tabulky a aktualizuje metastore Hive.
- Tabulky Delta: Při spuštění tabulek Delta pomocí argumentu
SYNC METADATA
tento příkaz přečte rozdílový protokol cílové tabulky a aktualizuje informace o metadatech do služby Katalogu Unity. - Tabulky jiné než Delta: Při spuštění s tabulkami, které nejsou delta, tento příkaz obnoví všechny oddíly v adresáři tabulky, která není Delta, a aktualizuje metastore Hive.
Syntaxe
[ MSCK ] REPAIR TABLE table_name
{
[ {ADD | DROP | SYNC} PARTITIONS] | SYNC METADATA
}
Pro Databricks SQL Databricks Runtime 12.2 LTS a vyšší MSCK
je volitelné.
Parametry
-
Název tabulky. Pokud tabulku nenajdete, Azure Databricks vyvolá TABLE_OR_VIEW_NOT_FOUND chybu.
ADD
neboDROP
SYNC
PARTITIONS
Platí pro: Databricks SQL Databricks Runtime 10.4 LTS a vyšší
Při vytváření tabulky, která není delta pomocí
PARTITIONED BY
klauzule, se oddíly vygenerují a zaregistrují v metastoru 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 zaregistrujteMSCK REPAIR TABLE
oddíly.Dalším způsobem obnovení oddílů je použití ALTER TABLE RECOVER PARTITIONS.
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 ADD přidá do katalogu relací nové oddíly pro všechny podsložky v základní složce tabulky, které nepatří do oddílů tabulky. Funkce ADD je výchozí argument, pokud není zadána žádná jiná možnost.
- Příkaz DROP zahodí všechny oddíly z katalogu relací, které mají neexistující umístění v systému souborů.
- SYNC je kombinace funkce DROP a ADD.
**
SYNC METADATA
**Přečte rozdílový protokol cílové tabulky a aktualizuje informace o metadatech ve službě Katalogu Unity. Chcete-li spustit tento příkaz, musíte mít oprávnění MODIFY a SELECT pro cílovou tabulku a POUŽITÍ nadřazeného schématu a katalogu. Tento příkaz s tímto argumentem selže, pokud cílová tabulka není uložena v katalogu Unity.
Pokud je povolený Delta UniForm,
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 Použití uniformu ke č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
Související články
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro