REPAIR TABLE
A következőkre vonatkozik: Databricks SQL Databricks Runtime
Ez a parancs frissíti a Delta-tábla metaadatait a Unity Catalog szolgáltatásban. Nem Delta-táblák esetén a rendszer helyreállítja a tábla partícióit, és frissíti a Hive metaadattárat.
- Delta-táblák: Ha deltatáblákkal hajtja végre az argumentumot, ez a
SYNC METADATA
parancs beolvassa a céltábla deltanaplóját, és frissíti a metaadatok adatait a Unity Catalog szolgáltatásban. - Nem Delta-táblák: Ha nem Delta-táblákkal hajtják végre, ez a parancs helyreállítja a nem Delta tábla könyvtárában lévő összes partíciót, és frissíti a Hive metaadattárat.
Syntax
[ MSCK ] REPAIR TABLE table_name
{
[ {ADD | DROP | SYNC} PARTITIONS] | SYNC METADATA
}
A Databricks SQL Databricks Runtime 12.2 LTS és újabb MSCK
verziója nem kötelező.
Paraméterek
-
A tábla neve. Ha a tábla nem található, az Azure Databricks TABLE_OR_VIEW_NOT_FOUND hibát jelez.
ADD
vagyDROP
SYNC
PARTITIONS
A következőkre vonatkozik: Databricks SQL Databricks Runtime 10.4 LTS és újabb
Ha nem Delta-táblát hoz létre a záradék használatával, a
PARTITIONED BY
rendszer létrehozza és regisztrálja a partíciókat a Hive metaadattárában. Ha azonban meglévő adatokból hozza létre a particionált táblát, a rendszer nem regisztrálja automatikusan a partíciókat a Hive metaadattárában. FuttassaMSCK REPAIR TABLE
a partíciók regisztrálását.A partíciók helyreállításának másik módja az ALTER TABLE RECOVER PARTÍCIÓK használata.
Ha a tábla gyorsítótárazva van, a parancs törli a tábla gyorsítótárazott adatait és az arra hivatkozó összes függőt. A gyorsítótár a tábla vagy a függők legközelebbi elérésekor tölti ki a gyorsítótárat.
- Az ADD parancs új partíciókat ad hozzá a munkamenet-katalógushoz az alaptáblamappában lévő összes almappához, amelyek nem tartoznak táblapartíciókhoz. Az ADD az alapértelmezett argumentum, ha nincs más beállítás megadva.
- A DROP parancs elveti az összes partíciót a munkamenetkatalógusból, amelyek nem létező helyekkel rendelkeznek a fájlrendszerben.
- A SYNC a DROP és az ADD kombináció.
**
SYNC METADATA
**Beolvassa a céltábla deltanaplóját, és frissíti a metaadatok adatait a Unity Catalog szolgáltatásban. A parancs futtatásához a szülőséma és -katalógus céltábláján és HASZNÁLATában a MODIFY és Standard kiadás LECT jogosultságokkal kell rendelkeznie. Ez az argumentummal rendelkező parancs sikertelen lesz, ha a céltáblát nem a Unity Catalog tárolja.
Ha a Delta UniForm engedélyezve van, aktiválja az aktuális Delta-metaadatok manuális konvertálását Iceberg-metaadatokká,
SYNC METADATA
és szinkronizálja a Unity Catalog Iceberg végpontjának legújabb Iceberg-verzióját. Lásd: Az UniForm használata a Delta-táblák iceberg-ügyfelekkel való olvasásához.
Példák (nem Delta Lake-táblák)
-- 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élda (Unity Catalog-táblázat)
-- run MSCK REPAIR TABLE t1 SYNC METADATA to update the metadata info to Unity Catalog service
> MSCK REPAIR TABLE t1 SYNC METADATA
Kapcsolódó cikkek
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: