REPAIR TABLE

Si applica a:segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime

Questo comando aggiorna i metadati della tabella Delta al servizio Catalogo Unity. Per le tabelle non Delta, ripristina le partizioni della tabella e aggiorna il metastore Hive.

  • Tabelle delta: quando vengono eseguite con tabelle Delta usando l'argomento SYNC METADATA , questo comando legge il log differenziale della tabella di destinazione e aggiorna le informazioni sui metadati al servizio Catalogo Unity.
  • Tabelle non Delta: se eseguite con tabelle non Delta, questo comando recupera tutte le partizioni nella directory di una tabella non Delta e aggiorna il metastore Hive.

Sintassi

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

Per segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime 12.2 LTS e versioni successive, MSCK è facoltativo.

Parametri

  • table_name

    Nome della tabella. Se la tabella non è stata trovata, Azure Databricks genera un errore di TABLE_OR_VIEW_NOT_FOUND .

  • ADD o DROP o SYNCPARTITIONS

    Si applica a:segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime 10.4 LTS e versioni successive

    Quando si crea una tabella non Delta usando la PARTITIONED BY clausola , le partizioni vengono generate e registrate nel metastore Hive. Tuttavia, se si crea la tabella partizionata da dati esistenti, le partizioni non vengono registrate automaticamente nel metastore Hive. Eseguire MSCK REPAIR TABLE per registrare le partizioni.

    Un altro modo per ripristinare le partizioni consiste nell'usare ALTER TABLE RECOVER PARTITIONS.

    Se la tabella viene memorizzata nella cache, il comando cancella i dati memorizzati nella cache della tabella e tutti i dipendenti che vi fanno riferimento. La cache riempie la successiva volta che si accede alla tabella o ai dipendenti.

    • Il comando ADD aggiunge nuove partizioni al catalogo delle sessioni per tutte le sottocartelle nella cartella della tabella di base che non appartengono ad alcuna partizione di tabella. ADD è l'argomento predefinito se non viene specificata alcuna altra opzione.
    • Il comando DROP elimina tutte le partizioni dal catalogo di sessioni con percorsi non esistenti nel file system.
    • SYNC è la combinazione di DROP e ADD.
  • ** SYNC METADATA**

    Legge il log differenziale della tabella di destinazione e aggiorna le informazioni sui metadati nel servizio Catalogo Unity. Per eseguire questo comando, è necessario disporre di privilegi MODIFY e edizione Standard LECT per la tabella di destinazione e UTILIZZO dello schema e del catalogo padre. Questo comando con questo argomento avrà esito negativo se la tabella di destinazione non è archiviata nel catalogo unity.

    Se Delta UniForm è abilitato, SYNC METADATA attiva la conversione manuale dei metadati Delta correnti nei metadati iceberg e sincronizza la versione più recente di Iceberg per l'endpoint Iceberg del catalogo Unity. Vedere Universal Format (UniForm) per la compatibilità di Iceberg con le tabelle Delta.

Esempi (tabelle non 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

Esempio (tabella del catalogo Unity)

-- run MSCK REPAIR TABLE t1 SYNC METADATA to update the metadata info to Unity Catalog service
> MSCK REPAIR TABLE t1 SYNC METADATA