Compartilhar via


FSCK REPAIR TABLE

Aplica-se a:marca de seleção positiva SQL do Databricks marca de seleção positiva 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

  • table_name

    Identifica uma tabela do Delta existente. O nome não deve incluir uma especificação temporal ou especificação de opções.

  • fsck_mode

    Aplica-se a:com marca de seleção em sim Databricks Runtime 18.0 e posterior

    Define 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 NULL restrições.
    • METADATA ONLY

      Valida e conserta o log de transações necessário para criar o instantâneo mais recente da tabela.

    • VERIFY ALL FILES

      Executa 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_timestamp

      Executa 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_timestamp e end_timestamp devem ser expressões constantes que avaliem para timestamps. As expressões podem incluir current_timestamp() e current_date() funções.

  • SIMULAÇÃO

    Relata, sem alterações, os metadados e problemas de arquivos de dados que FSCK REPAIR TABLE repararia.

    Por padrão, DRY RUN retorna apenas os primeiros mil arquivos. Você pode aumentar esse limite definindo a variável spark.databricks.delta.fsck.maxNumEntriesInResult de 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 VERIFY modos, FSCK també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 NULL
  • dataFileMissing BOOLEAN NOT NULL
  • deletionVectorPath STRING
  • deletionVectorFileMissing BOOLEAN NOT NULL

Aplica-se a:check marked yes Databricks Runtime 18.0 e posterior

  • checkpointFilePath STRING
  • fileCrcCorrupt BOOLEAN NOT NULL
  • fileUnreadable BOOLEAN NOT NULL
  • fileMetadataHasInvalidPartitionValues BOOLEAN NOT NULL
  • deletionVectorCorrupt 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