次の方法で共有


FSCK REPAIR TABLE

適用対象:「はい」のチェック マーク Databricks SQL 「はい」のチェック マーク Databricks Runtime

Delta テーブルのメタデータとデータ ファイルの問題を検出して修復します。 このコマンドには、次の 3 つのプログレッシブ レベルがあります。

  • トランザクション ログのみを修復する
  • トランザクション ログを修復し、不足しているデータ ファイルを削除する
  • トランザクション ログの修復、不足しているデータ ファイルの削除、破損したデータ ファイルの削除

各レベルには、前のレベルのすべての操作が含まれます。

構文

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 }

パラメーター

  • table_name

    既存の Delta テーブルを識別します。 名前には、 時仕様またはオプション指定を含めてはなりません

  • fsck_mode

    適用対象:はいにチェックマークが付けられている Databricks Runtime 18.0 以降

    実行するアクションを定義します。

    • 指定しない場合 (既定のモード):

      • 最新のテーブル スナップショットを作成するために必要なトランザクション ログを検証して修復します。
      • 基になるファイル システムに存在しなくなったデータ ファイルへの参照をテーブルから削除します。
      • パーティション値が NOT NULL 制約に違反しているデータ ファイルへの参照をテーブルから削除します。
    • METADATA ONLY

      最新のテーブル スナップショットを作成するために必要なトランザクション ログを検証して修復します。

    • VERIFY ALL FILES

      既定のモードからすべての操作を実行します。 すべてのアクティブなデータ ファイルの整合性を検証します。 整合性チェックに失敗したファイルへの参照をテーブルから削除します。

    • VERIFY FILES MODIFIED BETWEEN start_timestamp AND end_timestamp

      既定のモードからすべての操作を実行します。 変更時刻が指定された時間枠内にあるアクティブなデータ ファイルの整合性を検証します。 整合性チェックに失敗したファイルへの参照をテーブルから削除します。 start_timestampend_timestampの両方が、タイムスタンプに評価される定数式である必要があります。 式には、 current_timestamp() 関数と current_date() 関数を含めることができます。

  • ドライ ラン

    レポートでは、 FSCK REPAIR TABLE が修復するメタデータとデータファイルの問題を、変更を加えずに報告します。

    既定では、DRY RUN の場合、最初の 1000 個のファイルのみを返されます。 このしきい値を増やすには、ノートブックでコマンドを実行する前にセッション変数 spark.databricks.delta.fsck.maxNumEntriesInResult を高い値に設定します。

注記

  • FSCK は、最新のテーブル スナップショットのみを修復します。 履歴チェックポイントと非アクティブなファイルは検証も修復もされません。

  • 既定のモードでファイルが存在するかどうかを確認したり、 VERIFY モードでファイルの整合性を検証したりする場合、 FSCK は関連する削除ベクトルも検証します。 Parquet データ ファイルまたはその関連する削除ベクトルが見つからないか破損している場合、参照はテーブルから削除されます。

返品

DRY RUNで実行すると、次のスキーマを持つ DataFrame が返されます。

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

適用対象:はいにチェックマークが付けられている Databricks Runtime 18.0 以降

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

— 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