REPAIR TABLE

説明

REPAIR TABLE は、テーブルのディレクトリ内のすべてのパーティションを回復し、Hive メタストアを更新します。PARTITIONED BY 句を使用してテーブルを作成すると、パーティションが生成され、Hive メタストアに登録されます。ただし、パーティション化されたテーブルが既存のデータから作成された場合、パーティションは Hive メタストアに自動的に登録されません。ユーザーは、パーティションを登録するために REPAIR TABLE を実行する必要があります。存在しないテーブルまたはパーティションのないテーブルに対する REPAIR TABLE は例外をスローします。パーティションを回復する別の方法は、ALTER TABLE RECOVER PARTITIONS を使用することです。このコマンドは、Hive との互換性のために MSCK REPAIR TABLE を使用しても呼び出すことができます。

テーブルがキャッシュされている場合、コマンドはテーブルとそのテーブルを参照するすべての依存関係のキャッシュされたデータをクリアします。キャッシュは、次回テーブルまたは依存関係にアクセスされたときに遅延してロードされます。

構文

[MSCK] REPAIR TABLE table_identifier [{ADD|DROP|SYNC} PARTITIONS]

パラメータ

-- 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 REPAIR TABLE to recovers all the partitions
REPAIR TABLE t1;

-- SELECT * FROM t1 returns results
SELECT * FROM t1;
+-------+---+
|   name|age|
+-------+---+
|Michael| 20|
+-------+---+
| Justin| 19|
+-------+---+
|   Andy| 30|
+-------+---+