真空

從表目錄中刪除未使用的文件。

請注意

這個命令的工作方式取決於您使用的是Delta還是Apache Spark表。

抽真空Delta表(Delta Lake on Databricks)

遞歸地抽取與Delta表關聯的目錄。真空從表目錄中刪除不受Delta管理的所有文件,以及不再處於表事務日誌的最新狀態且超過保留閾值的數據文件。真空將跳過以下劃線開頭的所有目錄(_),其中包括_delta_log.在以下劃線開頭的列上劃分表是該規則的一個例外;真空掃描目標Delta表中包含的所有有效分區。Delta表數據文件的刪除是根據它們從Delta事務日誌中邏輯刪除的時間加上保留時間,而不是它們在存儲係統上的修改時間戳。默認閾值為7天。

關於Delta表,Databricks自動觸發真空操作。看到刪除不再被Delta表引用的文件

如果你跑了真空在Delta表上,你失去了時間旅行返回到比指定的數據保留期更早的版本。

警告

建議您將保留間隔設置為至少7天,因為舊的快照和未提交的文件仍然可以被並發的表讀寫器使用。如果真空清理活動文件,並發讀取器可能會失敗,更糟糕的是,當真空刪除尚未提交的文件。您必須選擇一個間隔,該間隔要長於運行的最長並發事務,以及任何流可以滯後於表的最新更新的最長時間。

三角洲湖有一個安全檢查,以防止您運行危險真空命令。如果您確定在此表上執行的操作所花費的時間沒有超過您計劃指定的保留間隔,則可以通過設置Spark配置屬性關閉此安全檢查spark.databricks.delta.retentionDurationCheck.enabled

真空table_name保留全國礦工工會小時運行

參數

  • table_name

    標識現有的Delta表。名稱中不能包含時間規範

  • 保留num HOURS

    保留閾值。

  • 排練

    返回一個最多包含1000個要刪除文件的列表。

清除一個Spark表(Apache Spark)

遞歸地清空與Spark表關聯的目錄,並刪除未提交的、超過保留閾值的文件。默認閾值為7天。

在Spark表上,Databricks自動觸發真空寫入數據時的操作。看到清理未提交的文件

語法

真空table_name保留全國礦工工會小時

參數

  • table_name

    通過名稱或路徑標識現有表。

  • 保留num HOURS

    保留閾值。