Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:
Databricks SQL
Databricks Runtime
Tento příkaz opraví nebo upraví oddíly pro tabulky.
SYNC METADATA Pomocí klauzule Delta Lake aktualizujte službu katalogu na základě metadat tabulek nebo vygenerujte metadata Apache Icebergu pro tabulky povolené pro čtení Icebergu. Nepoužívejte SYNC METADATA, pokud upravujete oddíly pro tabulky jiné než Delta Lake.
Podporované funkce závisí na tom, jestli jsou tabulky zaregistrované v katalogu Unity nebo metastoru Hive a jestli jsou tabulky zálohované službou Delta Lake.
Syntax
[ MSCK ] REPAIR TABLE table_name
{
[ {ADD | DROP | SYNC} PARTITIONS] | SYNC METADATA
}
Pro
Databricks SQL
Databricks Runtime 12.2 LTS a vyšší MSCK je volitelné.
Parameters
-
Název tabulky. Pokud se tabulka nenašla, Azure Databricks vyvolá chybu TABLE_OR_VIEW_NOT_FOUND.
ADDneboDROPneboSYNCPARTITIONSPlatí pro:
Databricks SQL
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. SpusťteMSCK REPAIR TABLE, abyste zaregistrovali 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ěť se naplní při příštím přístupu k tabulce nebo jejím závislostem.
- Příkaz ADD přidá do katalogu relací nové oddíly pro všechny podsložky ve složce základní tabulky, které nejsou přiřazeny k žádným oddílům 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 METADATAPouze Delta Lake.
Pokud je konfigurace
spark.databricks.delta.catalog.update.enablednastavená natrue, aktualizace metadat cílových tabulek se automaticky synchronizují se službou katalogu. V opačném případě může být vyžadována ruční synchronizace pomocíREPAIR TABLE table_name SYNC METADATA.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 METADATAaktivuje 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 Lake s klienty Iceberg pomocí UniFormu.Pomocí
REPAIR TABLE table_name SYNC METADATAmůžete uplatnit model oprávnění katalogu Unity na mělké klony, které čtete z externího katalogu vytvořeného pomocí federace metastoru Hive. Viz Práce s mělkými klony .
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