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
Detete e corrige problemas de metadados e ficheiros de dados para uma tabela Delta. O comando tem três níveis progressivos:
- Repare apenas o registo de transações
- Repare o registo de transações e remova ficheiros de dados em falta
- Repare o registo de transações, remova ficheiros de dados em falta e remova ficheiros 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 Delta existente. O nome não deve incluir uma especificação temporal ou uma especificação de opções.
fsck_modeAplica-se a:
Databricks Runtime 18.0, e posterioresDefine quais as ações a tomar.
Se não especificado (modo padrão):
- Valida e repara o registo de transações necessário para construir o snapshot da tabela mais recente.
- Remove referências da tabela a ficheiros de dados que já não existem no sistema de ficheiros subjacente.
- Remove referências da tabela para ficheiros de dados cujos valores de partição violam
NOT NULLrestrições.
METADATA ONLYValida e repara o registo de transações necessário para construir o snapshot da tabela mais recente.
VERIFY ALL FILESRealiza todas as operações a partir do modo padrão. Valida a integridade de todos os ficheiros de dados ativos. Remove referências da tabela a quaisquer ficheiros que falhem na verificação de integridade.
VERIFY FILES MODIFIED BETWEEN start_timestamp AND end_timestampRealiza todas as operações a partir do modo padrão. Valida a integridade dos ficheiros de dados ativos cujo tempo de modificação ocorre dentro da janela de tempo especificada. Remove referências da tabela a quaisquer ficheiros que falhem na verificação de integridade. Tanto
start_timestampcomoend_timestampdevem ser expressões constantes que resultem em carimbos temporais. As expressões podem incluircurrent_timestamp()ecurrent_date()funções.
ENSAIO
Enumera, sem alterar, os problemas de metadados e ficheiros de dados que
FSCK REPAIR TABLEseriam reparados.Por padrão,
DRY RUNretorna apenas os primeiros 1000 arquivos. Pode aumentar este limiar definindo a variávelspark.databricks.delta.fsck.maxNumEntriesInResultde sessão para um valor mais alto antes de executar o comando num caderno.
Observações
O FSCK repara apenas o snapshot mais recente da tabela. Os checkpoints históricos e ficheiros inativos não são validados nem reparados.
Ao verificar a existência de ficheiros em modo padrão ou validar a integridade do ficheiro em
VERIFYmodos,FSCKtambém valida quaisquer vetores de eliminação associados. Se o ficheiro de dados Parquet ou o seu vetor de eliminação associado estiverem em falta ou corrompidos, as referências são removidas da tabela.
Devoluções
Quando executado com DRY RUN, o comando devolve 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 posteriores
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