Delen via


FSCK REPAIR TABLE

Van toepassing op:gemarkeerd als ja Databricks SQL gemarkeerd als ja Databricks Runtime

Detecteert en herstelt metagegevens en gegevensbestandsproblemen voor een Delta-tabel. De opdracht heeft drie progressieve niveaus:

  • Alleen het transactielogboek herstellen
  • Het transactielogboek herstellen en ontbrekende gegevensbestanden verwijderen
  • Herstel het transactielogboek, verwijder ontbrekende gegevensbestanden en verwijder beschadigde gegevensbestanden

Elk niveau bevat alle bewerkingen van de vorige niveaus.

Syntaxis

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 }

Parameters

  • table_name

    Identificeert een bestaande Delta-tabel. De naam mag geen tijdelijke specificatie of optiesspecificatie bevatten.

  • fsck_mode

    Van toepassing op:aangevinkt ja Databricks Runtime 18.0 en hoger

    Hiermee definieert u welke acties moeten worden uitgevoerd.

    • Als dit niet is opgegeven (standaardmodus):

      • Valideert en herstelt het transactielogboek dat nodig is om de meest recente momentopname van de tabel te maken.
      • Verwijdert verwijzingen uit de tabel naar gegevensbestanden die niet meer bestaan in het onderliggende bestandssysteem.
      • Verwijdert verwijzingen uit de tabel naar gegevensbestanden waarvan partitiewaarden beperkingen schenden NOT NULL .
    • METADATA ONLY

      Valideert en herstelt het transactielogboek dat nodig is om de meest recente momentopname van de tabel te maken.

    • VERIFY ALL FILES

      Voert alle bewerkingen uit vanuit de standaardmodus. Valideert de integriteit van alle actieve gegevensbestanden. Hiermee verwijdert u verwijzingen uit de tabel naar bestanden die de integriteitscontrole mislukken.

    • VERIFY FILES MODIFIED BETWEEN start_timestamp AND end_timestamp

      Voert alle bewerkingen uit vanuit de standaardmodus. Valideert de integriteit van actieve gegevensbestanden waarvan de wijzigingstijd binnen het opgegeven tijdvenster valt. Hiermee verwijdert u verwijzingen uit de tabel naar bestanden die de integriteitscontrole mislukken. Beide start_timestamp en end_timestamp moeten constante expressies zijn die tijdstempels evalueren. De expressies kunnen current_timestamp() en current_date() functies bevatten.

  • DROOGLOOP

    Rapporteert, zonder wijzigingen aan te brengen, de metagegevens- en gegevensbestandenproblemen die FSCK REPAIR TABLE zou herstellen.

    DRY RUN Standaard worden alleen de eerste 1000 bestanden geretourneerd. U kunt deze drempelwaarde verhogen door de sessievariabele spark.databricks.delta.fsck.maxNumEntriesInResult in te stellen op een hogere waarde voordat u de opdracht uitvoert in een notebook.

Opmerkingen

  • FSCK herstelt alleen de meest recente momentopname van de tabel. Historische controlepunten en inactieve bestanden worden niet gevalideerd of hersteld.

  • Bij het controleren op het bestaan van bestanden in de standaardmodus of het valideren van bestandsintegriteit in VERIFY modi, FSCK worden ook alle bijbehorende verwijderingsvectoren gevalideerd. Als het Parquet-gegevensbestand of de bijbehorende verwijderingsvector ontbreekt of beschadigd is, worden de verwijzingen uit de tabel verwijderd.

Retouren

Wanneer u werkt met DRY RUN, retourneert de opdracht een DataFrame met het volgende schema:

  • dataFilePath STRING NOT NULL
  • dataFileMissing BOOLEAN NOT NULL
  • deletionVectorPath STRING
  • deletionVectorFileMissing BOOLEAN NOT NULL

Van toepassing op:aangevinkt ja Databricks Runtime 18.0 en hoger

  • checkpointFilePath STRING
  • fileCrcCorrupt BOOLEAN NOT NULL
  • fileUnreadable BOOLEAN NOT NULL
  • fileMetadataHasInvalidPartitionValues BOOLEAN NOT NULL
  • deletionVectorCorrupt BOOLEAN NOT NULL

Voorbeelden

— 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