MSCK REPAIR TABLE

Återställer alla partitioner i katalogen i en tabell och uppdaterar Hive-metaarkiv. När du skapar en tabell med hjälp av en PARTITIONED BY sats skapas och registreras partitionerna i Hive-metaarkiv. Men om den partitionerade tabellen skapas från befintliga data, registreras inte partitionerna automatiskt i Hive-metaarkiv. Du måste köra MSCK REPAIR TABLE för att registrera partitionerna. MSCK REPAIR TABLE en icke-befintlig tabell eller en tabell utan partitioner genererar ett undantag. Ett annat sätt att återställa partitioner är att använda ALTER TABLE RECOVER PARTITIONS .

Syntax

MSCK REPAIR TABLE table_identifier

Parametrar

  • table_identifier

    Namnet på den tabell som ska repare ras. Tabell namnet kan eventuellt kvalificeras med ett databas namn.

    Syntax:[database_name.] table_name

Exempel

-- 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|
+-------+---+