Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:
Databricks SQL
Databricks Runtime
Este comando repara ou modifica partições para tabelas.
Utilize a cláusula SYNC METADATA com o Delta Lake para atualizar o serviço de catálogo com base nos metadados da tabela ou para gerar metadados do Apache Iceberg para tabelas capazes de realizar leituras no Iceberg. Não use SYNC METADATA quando estiver modificando partições para tabelas que não sejam Delta Lake.
A funcionalidade suportada depende se as tabelas estão registradas no Unity Catalog ou no metastore do Hive e se as tabelas são apoiadas pelo Delta Lake.
Syntax
[ MSCK ] REPAIR TABLE table_name
{
[ {ADD | DROP | SYNC} PARTITIONS] | SYNC METADATA
}
Para
Databricks SQL
Databricks Runtime 12.2 LTS e superior, MSCK é opcional.
Parameters
-
O nome da tabela. Se a tabela não puder ser encontrada, o Azure Databricks gerará um erro TABLE_OR_VIEW_NOT_FOUND .
ADDouDROPouSYNCPARTITIONSAplica-se a:
Databricks SQL
Databricks Runtime 10.4 LTS e versões superioresAo criar uma tabela não-Delta usando a cláusula
PARTITIONED BY, as partições são geradas e registradas no metastore do Hive. No entanto, se você criar a tabela particionada a partir de dados existentes, as partições não serão registradas automaticamente no metastore do Hive. ExecuteMSCK REPAIR TABLEpara registrar as partições.Outra maneira de recuperar partições é usar ALTER TABLE RECOVER PARTITIONS.
Se a tabela estiver armazenada em cache, o comando limpará os dados armazenados em cache da tabela e todos os dependentes que se referem a ela. O cache é preenchido na próxima vez que a tabela ou os dependentes forem acessados.
- O comando ADD adiciona novas partições ao catálogo de sessões para todas as subpastas na pasta da tabela base que não pertencem a nenhuma partição de tabela. ADD é o argumento padrão se nenhuma outra opção for especificada.
- O comando DROP descarta todas as partições do catálogo de sessões que têm locais não existentes no sistema de arquivos.
- SYNC é a combinação de DROP e ADD.
SYNC METADATAApenas Lago Delta.
Se a configuração
spark.databricks.delta.catalog.update.enabledestiver definida comotrue, as atualizações de metadados da tabela de destino serão sincronizadas automaticamente com o serviço de catálogo. Caso contrário, poderá ser necessária uma sincronizaçãoREPAIR TABLE table_name SYNC METADATAmanual.Lê o log de transações da tabela de destino e atualiza as informações de metadados no serviço de catálogo. Para executar esse comando, você deve ter privilégios MODIFY e SELECT na tabela de destino e privilégios USE SCHEMA e USE CATALOG no esquema pai e no catálogo.
Esse argumento funciona com o metastore do Hive no Databricks Runtime 16.1 e superior. Para tabelas de metastore do Hive, é necessário ter privilégios USAGE e MODIFY.
Se o Delta UniForm estiver habilitado (requer o Unity Catalog),
SYNC METADATAacionará a conversão manual dos metadados Delta atuais para metadados do Iceberg e sincronizará a versão mais recente do Iceberg para o endpoint Iceberg do Unity Catalog. Veja Ler tabelas Delta com clientes Iceberg.Você pode usar
REPAIR TABLE table_name SYNC METADATApara aplicar o modelo de permissões do Unity Catalog a clones superficiais que você está a ler de um catálogo estrangeiro que foi criado usando a federação de metastore do Hive. Consulte Trabalhando com clones superficiais.
Exemplos (tabelas não 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
Exemplo (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