分享方式:


FSCK 修復數據表

適用於: 檢查標示為是 Databricks SQL 檢查標示為是 Databricks Runtime

從在基礎文件系統中找不到之 Delta 資料表的事務歷史記錄中移除檔案專案。 當手動刪除這些檔案時,就會發生這種情況。

語法

FSCK REPAIR TABLE table_name [DRY RUN]

參數

  • table_name

    識別現有的 Delta 數據表。 名稱不得包含 時態規格

  • DRY RUN

    顯示將從 Delta 數據表 FSCK REPAIR TABLE事務歷史記錄中移除之檔案專案的相關信息,因為基礎文件系統中找不到這些專案。 當手動刪除這些檔案時,就會發生這種情況。 檔案項目是資料檔案路徑或數據檔案路徑和刪除向量檔案路徑的組合。 當數據檔遺失、刪除向量檔案遺失或兩者遺失時,檔案專案都會包含在輸出中。

    根據預設, DRY RUN 只會傳回前 1000 個檔案。 您可以在筆記本中執行命令之前,將SparkSession變數 spark.databricks.delta.fsck.maxNumEntriesInResult 設定為較高的值來增加此臨界值。

傳回

針對 DRY RUN 表單的 A 報表:

  • 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