Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: Databricks SQL
Databricks Runtime
To polecenie naprawia lub modyfikuje partycje dla tabel.
SYNC METADATA
Użyj klauzuli z usługą Delta Lake, aby zaktualizować usługę wykazu na podstawie metadanych tabeli lub wygenerować metadane platformy Apache Iceberg dla tabel z włączoną obsługą odczytów w górach lodowych. Nie należy używać SYNC METADATA
podczas modyfikowania partycji dla tabel nienależących do usługi Delta Lake.
Obsługiwana funkcjonalność zależy od tego, czy tabele są zarejestrowane w Unity Catalog lub w metastore Hive oraz czy są oparte na Delta Lake.
Składnia
[ MSCK ] REPAIR TABLE table_name
{
[ {ADD | DROP | SYNC} PARTITIONS] | SYNC METADATA
}
Aby sprawdzić zaznaczenie "tak" w Databricks SQL i Databricks Runtime 12.2 LTS i nowszych, jest opcjonalny.
Parametry
-
Nazwa tabeli. Jeśli nie można odnaleźć tabeli usługi Azure Databricks, wystąpi błąd TABLE_OR_VIEW_NOT_FOUND .
ADD
lub lubDROP
SYNC
PARTITIONS
Dotyczy:
Databricks SQL
Databricks Runtime 10.4 LTS i nowszych
Podczas tworzenia tabeli innej niż delta przy użyciu klauzuli
PARTITIONED BY
partycje są generowane i rejestrowane w magazynie metadanych Hive. Jeśli jednak tworzysz tabelę partycjonowaną na podstawie istniejących danych, partycje nie są automatycznie rejestrowane w magazynie metadanych Hive. Uruchom polecenieMSCK REPAIR TABLE
, aby zarejestrować partycje.Innym sposobem na odzyskanie partycji jest użycie ALTER TABLE funkcji ODZYSKAJ PARTYCJE.
Jeśli tabela jest buforowana, polecenie czyści buforowane dane tabeli i wszystkie zależności, które się do niej odwołują. Pamięć podręczna zostanie wypełniona przy następnym uzyskaniu dostępu do tabeli lub zależności.
- Polecenie ADD dodaje nowe partycje do katalogu sesji dla wszystkich podfolderów w folderze tabeli podstawowej, które nie należą do żadnych partycji tabeli. FUNKCJA ADD jest argumentem domyślnym, jeśli nie określono żadnej innego opcji.
- Polecenie DROP usuwa wszystkie partycje z katalogu sesji, które mają nieistniejące lokalizacje w systemie plików.
- SYNC jest kombinacją DROP i ADD.
SYNC METADATA
Tylko Delta Lake.
Jeśli konfiguracja
spark.databricks.delta.catalog.update.enabled
jest ustawiona natrue
, aktualizacje metadanych tabeli docelowej są automatycznie synchronizowane z usługą wykazu. W przeciwnym razie może być wymagana ręczna synchronizacja za pomocąREPAIR TABLE table_name SYNC METADATA
.Odczytuje dziennik transakcji tabeli docelowej i aktualizuje informacje o metadanych w usłudze katalogu. Aby uruchomić to polecenie, musisz mieć uprawnienia MODIFY i SELECT w tabeli docelowej oraz uprawnienia USE SCHEMA i USE CATALOG w nadrzędnym schemacie i wykazie.
Ten argument działa z magazynem metadanych Hive w środowisku Databricks Runtime 16.1 lub nowszym. W przypadku tabel magazynu metadanych Hive musisz mieć uprawnienia USAGE i MODIFY.
Jeśli Delta UniForm jest włączona (wymaga Unity Catalog),
SYNC METADATA
wyzwala ręczną konwersję bieżących metadanych Delta do metadanych Iceberg i synchronizuje najnowszą wersję Iceberg dla punktu końcowego Iceberg w Unity Catalog. Zobacz Odczytywanie tabel Delta przez klientów Iceberg.Można użyć
REPAIR TABLE table_name SYNC METADATA
, aby zastosować model uprawnień Unity Catalog do płytkich klonów odczytywanych z obcego katalogu, który został utworzony przy użyciu federacji metastore Hive. Zobacz Praca z płytkimi klonami.
Przykłady (tabele niebędące tabelami 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
Przykład (tabela Unity Catalog)
-- run MSCK REPAIR TABLE t1 SYNC METADATA to update the metadata info to Unity Catalog service
> MSCK REPAIR TABLE t1 SYNC METADATA