Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:
Databricks SQL
Databricks Runtime
Met deze opdracht worden partities voor tabellen hersteld of gewijzigd.
Gebruik de SYNC METADATA component met Delta Lake om de catalogusservice bij te werken op basis van tabelmetagegevens of om Apache Iceberg-metagegevens te genereren voor tabellen die zijn ingeschakeld voor Iceberg-leesbewerkingen. Gebruik geen SYNC METADATA wanneer u partities voor niet-Delta Lake-tabellen wijzigt.
Ondersteunde functionaliteit is afhankelijk van of tabellen zijn geregistreerd in Unity Catalog of Hive-metastore en of tabellen worden ondersteund door Delta Lake.
Syntax
[ MSCK ] REPAIR TABLE table_name
{
[ {ADD | DROP | SYNC} PARTITIONS] | SYNC METADATA
}
Voor
Databricks SQL
Databricks Runtime 12.2 LTS en hoger, MSCK is optioneel.
Parameters
-
De naam van de tabel. Als de tabel niet kan worden gevonden, genereert Azure Databricks een TABLE_OR_VIEW_NOT_FOUND fout.
ADDofDROPSYNCPARTITIONSVan toepassing op:
Databricks SQL
Databricks Runtime 10.4 LTS en hogerWanneer u een niet-Delta-tabel maakt met behulp van de
PARTITIONED BY-component, worden partities gegenereerd en geregistreerd in de Hive-metastore. Als u echter de gepartitioneerde tabel maakt op basis van bestaande gegevens, worden partities niet automatisch geregistreerd in de Hive-metastore. Voer uitMSCK REPAIR TABLEom de partities te registreren.Een andere manier om partities te herstellen is het gebruik van ALTER TABLE RECOVER PARTITIONS.
Als de tabel in de cache is opgeslagen, wist de opdracht de cachegegevens van de tabel en alle afhankelijken die ernaar verwijzen. De cache wordt gevuld de volgende keer dat de tabel of afhankelijke elementen worden geopend.
- Met de opdracht ADD worden nieuwe partities toegevoegd aan de sessiecatalogus voor alle submappen in de basistabelmap die geen deel uitmaken van tabelpartities. ADD is het standaardargument als er geen andere optie is opgegeven.
- Drop-opdracht verwijdert alle partities uit de sessiecatalogus met niet-bestaande locaties in het bestandssysteem.
- SYNC is de combinatie van DROP en ADD.
SYNC METADATAAlleen Delta Lake.
Als de configuratie
spark.databricks.delta.catalog.update.enabledis ingesteld optrue, worden metagegevensupdates van de doeltabel automatisch gesynchroniseerd met de catalogusservice. Mogelijk is een handmatige synchronisatie met behulp vanREPAIR TABLE table_name SYNC METADATAnodig.Leest het transactielogboek van de doeltabel en werkt de metagegevensgegevens in de catalogusservice bij. Als u deze opdracht wilt uitvoeren, moet u de bevoegdheden WIJZIGEN en SELECT op de doeltabel hebben, evenals de bevoegdheden USE SCHEMA en USE CATALOG op het bovenliggende schema en de catalogus.
Dit argument werkt met hive-metastore in Databricks Runtime 16.1 en hoger. Voor Hive-metastore-tabellen moet u de bevoegdheden USAGE en MODIFY hebben.
Als Delta UniForm is ingeschakeld (vereist Unity Catalog), activeert
SYNC METADATAhandmatige conversie van huidige Delta-metagegevens naar Iceberg-metagegevens en synchroniseert de nieuwste Iceberg-versie voor het Unity Catalog Iceberg-eindpunt. Zie Delta-tabellen lezen met Iceberg-clients.U kunt
REPAIR TABLE table_name SYNC METADATAgebruiken om het machtigingsmodel voor Unity Catalog toe te passen op ondiepe kopieën die u leest uit een vreemde catalogus die is gemaakt met behulp van Hive Metastore-federatie. Zie Werken met ondiepe kloons.
Voorbeelden (niet-Delta Lake-tabellen)
-- 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
Voorbeeld (Unity Catalog-tabel)
-- run MSCK REPAIR TABLE t1 SYNC METADATA to update the metadata info to Unity Catalog service
> MSCK REPAIR TABLE t1 SYNC METADATA