Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: SQL do Databricks
Databricks Runtime
Esse comando repara ou modifica partições para tabelas.
Use a cláusula SYNC METADATA
com o Delta Lake para atualizar o serviço de catálogo com base em metadados de tabela ou para gerar metadados do Apache Iceberg para tabelas habilitadas para leitura com Iceberg. Não use SYNC METADATA
quando você estiver modificando partições para tabelas não Delta Lake.
A funcionalidade com suporte depende se as tabelas são registradas no Catálogo do Unity ou no metastore do Hive e se as tabelas são apoiadas pelo Delta Lake.
Sintaxe
[ MSCK ] REPAIR TABLE table_name
{
[ {ADD | DROP | SYNC} PARTITIONS] | SYNC METADATA
}
Para Databricks SQL
Databricks Runtime 12.2 LTS e versões superiores,
MSCK
é opcional.
Parâmetros
-
O nome da tabela. Se a tabela não puder ser encontrada, o Azure Databricks gerará um erro TABLE_OR_VIEW_NOT_FOUND.
ADD
ouDROP
ouSYNC
PARTITIONS
Aplica-se a:
SQL do Databricks
Databricks Runtime 10.4 LTS e superior
Ao criar uma tabela não Delta usando uma cláusula
PARTITIONED BY
, as partições são geradas e registradas no metastore do Hive. No entanto, se você criar a tabela particionada usando dados existentes, as partições não serão registradas automaticamente no metastore do Hive. ExecuteMSCK REPAIR TABLE
para registrar as partições.Outra maneira de recuperar partições é usar ALTER TABLE RECOVER PARTITIONS.
Se a tabela for armazenada em cache, o comando limpará os dados armazenados em cache da tabela e todos os dependentes que se referem a ela. O cache será preenchido na próxima vez em que a tabela ou os dependentes forem acessados.
- O comando ADD adiciona novas partições ao catálogo de sessão para todas as subpastas na pasta de tabela base que não pertencem a nenhuma partição de tabela. ADD será o argumento padrão se nenhuma outra opção for especificada.
- O comando DROP descarta todas as partições do catálogo de sessão que têm locais não existentes no sistema de arquivos.
- SYNC é a combinação de DROP e ADD.
SYNC METADATA
Somente o Delta Lake.
Se a configuração
spark.databricks.delta.catalog.update.enabled
estiver 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, uma sincronização manual usandoREPAIR TABLE table_name SYNC METADATA
pode ser necessária.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 os privilégios MODIFY e SELECT na tabela de destino e privilégios USE SCHEMA e USE CATALOG no esquema e catálogo pai.
Esse argumento funciona com o metastore do Hive no Databricks Runtime 16.1 e superior. Quanto às tabelas metastore do Hive, você precisa ter privilégios USAGE e MODIFY.
Se o Delta UniForm estiver habilitado (requer Unity Catalog),
SYNC METADATA
aciona a conversão manual dos metadados Delta atuais em metadados Iceberg e sincroniza a versão mais recente do Iceberg para o ponto de extremidade Iceberg do Unity Catalog. Confira Ler tabelas Delta com clientes do Iceberg.Você pode usar
REPAIR TABLE table_name SYNC METADATA
para aplicar o modelo de permissões do Catálogo do Unity aos clones superficiais que você está lendo 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 do Catálogo do Unity)
-- run MSCK REPAIR TABLE t1 SYNC METADATA to update the metadata info to Unity Catalog service
> MSCK REPAIR TABLE t1 SYNC METADATA