FSCK REPAIR TABLE

适用于:勾选“是” Databricks SQL 勾选“是” Databricks Runtime

从 Delta 表的事务日志中删除无法再从基础文件系统中找到的文件条目。 手动删除这些文件时,可能会发生这种情况。

语法

FSCK REPAIR TABLE table_name [DRY RUN]

参数

  • table_name

    标识现有的 Delta 表。 名称不得包含时态规范或选项规范

  • DRY RUN

    显示有关将由 FSCK REPAIR TABLE 从 Delta 表的事务日志中删除的文件条目的信息,因为它们不再可在基础文件系统中找到。 手动删除这些文件时,可能会发生这种情况。 文件条目是数据文件路径,或者是数据文件路径和删除矢量文件路径的组合。 当缺少数据文件、缺少删除矢量文件或两者均缺失时,输出中将包含文件条目。

    默认情况下,DRY RUN 仅返回前 1000 个文件。 在笔记本中运行该命令之前,可以通过将 SparkSession 变量 spark.databricks.delta.fsck.maxNumEntriesInResult 设置为更高的值来增加此阈值。

返回

对于 DRY RUN,将返回以下形式的报表:

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

示例

— Assume file1.parquet is missing and no DV is expected.
> FSCK REPAIR TABLE t DRY RUN;
  dataFilePath dataFileMissing deletionVectorPath deletionVectorFileMissing
 ------------- --------------- ------------------ -------------------------
 file1.parquet            true               null                     false

— Assume dv1.bin is missing.
> FSCK REPAIR TABLE t DRY RUN;
  dataFilePath dataFileMissing deletionVectorPath deletionVectorFileMissing
 ------------- --------------- ------------------ -------------------------
 file1.parquet           false            dv1.bin                      true