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
Runtime do Databricks
Detecta e repara metadados e problemas de arquivo de dados para uma tabela Delta. O comando tem três níveis progressivos:
- Reparar somente o log de transações
- Reparar o log de transações e remover arquivos de dados ausentes
- Reparar o log de transações, remover arquivos de dados ausentes e remover arquivos de dados corrompidos
Cada nível inclui todas as operações dos níveis anteriores.
Sintaxe
FSCK REPAIR TABLE table_name [fsck_mode] [DRY RUN]
fsck_mode
{ METADATA ONLY |
VERIFY ALL FILES |
VERIFY FILES MODIFIED BETWEEN start_timestamp AND end_timestamp }
Parâmetros
-
Identifica uma tabela do Delta existente. O nome não deve incluir uma especificação temporal ou especificação de opções.
fsck_modeAplica-se a:
Databricks Runtime 18.0 e posteriorDefine quais ações tomar.
Se não for especificado (modo padrão):
- Valida e repara o log de transações necessário para construir o instantâneo de tabela mais recente.
- Remove referências da tabela para arquivos de dados que não existem mais no sistema de arquivos subjacente.
- Remove referências da tabela para arquivos de dados cujos valores de partição violam
NOT NULLrestrições.
METADATA ONLYValida e conserta o log de transações necessário para criar o instantâneo mais recente da tabela.
VERIFY ALL FILESExecuta todas as operações do modo padrão. Valida a integridade de todos os arquivos de dados ativos. Remove referências da tabela para todos os arquivos que falham na verificação de integridade.
VERIFY FILES MODIFIED BETWEEN start_timestamp AND end_timestampExecuta todas as operações do modo padrão. Valida a integridade de arquivos de dados ativos cujo tempo de modificação se enquadra na janela de tempo especificada. Remove referências da tabela para todos os arquivos que falham na verificação de integridade. Ambos
start_timestampeend_timestampdevem ser expressões constantes que avaliem para timestamps. As expressões podem incluircurrent_timestamp()ecurrent_date()funções.
SIMULAÇÃO
Relata, sem alterações, os metadados e problemas de arquivos de dados que
FSCK REPAIR TABLErepararia.Por padrão,
DRY RUNretorna apenas os primeiros mil arquivos. Você pode aumentar esse limite definindo a variávelspark.databricks.delta.fsck.maxNumEntriesInResultde sessão para um valor mais alto antes de executar o comando em um notebook.
Anotações
O FSCK repara apenas o instantâneo de tabela mais recente. Pontos de verificação históricos e arquivos inativos não são validados ou reparados.
Ao verificar a existência do arquivo no modo padrão ou validar a integridade do arquivo em
VERIFYmodos,FSCKtambém valida todos os vetores de exclusão associados. Se o arquivo de dados Parquet ou seu vetor de exclusão associado estiver ausente ou corrompido, as referências serão removidas da tabela.
Retorna
Ao executar com DRY RUN, o comando retorna um DataFrame com o seguinte esquema:
dataFilePath STRING NOT NULLdataFileMissing BOOLEAN NOT NULLdeletionVectorPath STRINGdeletionVectorFileMissing BOOLEAN NOT NULL
Aplica-se a:
Databricks Runtime 18.0 e posterior
checkpointFilePath STRINGfileCrcCorrupt BOOLEAN NOT NULLfileUnreadable BOOLEAN NOT NULLfileMetadataHasInvalidPartitionValues BOOLEAN NOT NULLdeletionVectorCorrupt BOOLEAN NOT NULL
Exemplos
— Assume 005.checkpoint.parquet has CRC checksum corruption.
> FSCK REPAIR TABLE t METADATA ONLY DRY RUN;
dataFilePath dataFileMissing deletionVectorPath deletionVectorFileMissing checkpointFilePath fileCrcCorrupt fileUnreadable fileMetadataHasInvalidPartitionValues deletionVectorCorrupt
------------ --------------- ------------------ ------------------------- --------------------------------- -------------- -------------- ------------------------------------- ---------------------
null false null false _delta_log/005.checkpoint.parquet true false false false
— Assume file1.parquet is missing, whose deletion vector dv1.bin is also missing.
— Assume file2.parquet has partition value being NULL, where the partition column is NOT NULL.
> FSCK REPAIR TABLE t DRY RUN;
dataFilePath dataFileMissing deletionVectorPath deletionVectorFileMissing checkpointFilePath fileCrcCorrupt fileUnreadable fileMetadataHasInvalidPartitionValues deletionVectorCorrupt
------------- --------------- ------------------ ------------------------- ------------------ -------------- -------------- ------------------------------------- ---------------------
file2.parquet true dv1.bin true null false false false false
file2.parquet false null false null null null true false
— Assume file1.parquet is corrupt and unreadable.
— Assume file2.parquet has a corrupt deletion vector dv2.bin.
> FSCK REPAIR TABLE t VERIFY ALL FILES DRY RUN;
dataFilePath dataFileMissing deletionVectorPath deletionVectorFileMissing checkpointFilePath fileCrcCorrupt fileUnreadable fileMetadataHasInvalidPartitionValues deletionVectorCorrupt
------------- --------------- ------------------ ------------------------- ------------------ -------------- -------------- ------------------------------------- ---------------------
file1.parquet false null false null false true false false
file2.parquet false dv2.bin false null null null false true