真空

適用於:檢查標記是的磚的SQL檢查標記是的磚運行時

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

請注意

根據使用的是Delta還是Apache Spark表,此命令的工作方式不同。

清空一個Delta表(Databricks上的Delta Lake)

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

在Delta表上,Databricks自動觸發真空操作。看到用吸塵器清除不使用的數據文件

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

警告

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

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

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

參數

  • table_name

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

  • 保留num小時

    保留閾值。

  • 排練

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

清理Spark表(Apache Spark)

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

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

語法

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

參數

  • table_name

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

  • 保留num小時

    保留閾值。