刪除未使用的數據文件與真空

您可以刪除數據文件不再引用的三角洲表保留閾值以上的運行真空命令在桌子上。運行真空定期對成本和遵從性很重要,因為以下注意事項:

  • 刪除未使用的數據文件雲存儲成本降低。

  • 數據文件被真空可能包含已修改或刪除記錄。永久刪除這些文件從雲存儲確保這些記錄不再訪問。

數據文件的默認保留閾值後運行真空是7天。要改變這種行為,明白了配置數據保留時間旅行的查詢

一些三角洲湖功能使用元數據文件將數據標記為刪除而不是重寫數據文件。您可以使用REORG應用(清洗)提交這些刪除和重寫數據文件。看到清洗僅元數據刪除重寫力數據

重要的

  • 在磚運行時的13.2及以上,真空語義與統一目錄管理表淺克隆不同於其他三角洲表。看到真空和統一目錄淺克隆

  • 真空從目錄中刪除所有文件不是由三角洲湖,忽略目錄開始_。如果你儲存額外的元數據是結構化流檢查站在三角洲表目錄,使用目錄名稱等_checkpoints

  • 查詢表版本的能力超過保存期丟失後運行真空

  • 日誌文件後自動刪除和異步檢查點操作和不受真空。雖然日誌文件的默認的保持期是30天,運行真空桌子上刪除時間旅行所需的數據文件。

請注意

當啟用磁盤緩存時,一個集群可能包含數據從拚花已被刪除的文件真空。因此,它可能會查詢以前的表的數據版本的文件已經被刪除。重新啟動集群將刪除緩存數據。看到配置磁盤高速緩存

例如語法真空

真空eventsTable——真空不是必需的文件版本比默認的保存期真空“/數據/事件”在基於路徑表——真空文件真空δ' /數據/事件/ '真空δ' /數據/事件/ '保留One hundred.小時——真空所需的文件不超過100小時的舊版本真空eventsTable運行——做排練要刪除文件的列表

火花的SQL語法細節,請參閱真空

看到三角洲湖API文檔Scala的Java、Python語法細節。

清洗僅元數據刪除重寫力數據

REORG命令提供了應用(清洗)語法改寫數據應用軟刪除。軟刪除不重寫或刪除數據文件的數據,而是使用元數據文件表明,一些數據值已經改變了。看到REORG表

在三角洲湖創建軟刪除的操作包括以下:

  • 刪除列,列映射啟用。

  • 刪除行刪除向量啟用。

  • 任何Photon-enabled集群數據的修改刪除向量時啟用。

啟用軟刪除後,舊的數據可能仍在表的當前文件即使在數據已經被刪除或更新。身體從表中刪除這些數據,請完成以下步驟:

  1. 運行REORG應用(清洗)。這樣做之後,舊的數據表中不再存在當前的文件,但它仍然是在舊的文件用於時間旅行。

  2. 運行真空刪除這些舊文件。

REORG創建一個新版本的表操作完成。曆史上所有表版本之前,這筆交易是指舊的數據文件。從概念上講,這是相似的優化命令,數據文件重寫盡管當前表中的數據版本保持一致。

重要的

數據文件時隻刪除文件過期的根據真空保存期。這意味著真空必須完成後延遲REORG這舊的文件已經過期。的停留時間真空可以減少縮短所需的等待時間,減少成本的最大曆史留存。

集群真空需要什麼尺寸的?

選擇正確的集群大小真空,它有助於理解操作發生在兩個階段:

  1. 這份工作首先使用所有可用的執行器節點並行在源目錄列表文件。這個列表是相對於目前所有文件中引用三角洲事務日誌來識別文件被刪除。司機都閑置在這段時間。

  2. 司機然後問題刪除命令對每個文件被刪除。文件刪除是司機才操作,這意味著所有操作發生在單個節點,而工人空閑節點。

優化成本和性能,磚推薦以下,特別是對於長期真空工作:

  • 在一個集群上運行真空與伸縮設置為1 - 4工人,每個工人在8核。

  • 8 - 32之間選擇一個司機與核心。提高司機的大小以避免出現內存不足(伯父)錯誤。

如果真空操作是定期刪除超過1萬文件或接管30分鍾的處理時間,您可能想要提高司機的大小或工人的數量。

如果你發現經濟放緩出現在識別文件被刪除,添加更多的工作節點。如果經濟放緩出現刪除命令運行時,試著增加司機的大小。

你應該運行真空的頻率?

磚建議定期運行真空所有表,以減少多餘的雲數據存儲成本。真空的默認保留閾值是7天。設定更高的門檻讓你獲得更大的曆史表,但增加了數據文件存儲的數量,因此,從雲提供商帶來更大的存儲成本。

為什麼你不能真空和保留低閾值δ桌子嗎?

警告

建議您設置一個保留間隔至少7天,因為舊的快照和未提交的文件仍然可以使用並發讀者或作者。如果真空清理活動文件,並發的讀者可能會失敗,或者更糟的是,表時可以損壞真空刪除文件,尚未提交。你必須選擇一個時間間隔較長時間最長的並發事務和最長的時期,任何流可以落後於最新更新表。

三角洲湖有一個安全檢查防止你運行一個危險真空命令。如果你確定沒有這個表上執行的操作,需要更長的時間比保留你計劃指定的時間間隔,你可以關掉這個安全檢查通過設置引發配置屬性spark.databricks.delta.retentionDurationCheck.enabled

審計信息

真空致力於三角洲事務日誌包含審計信息。您可以查詢審計事件使用描述曆史

捕捉審計信息,啟用spark.databricks.delta.vacuum.logging.enabled。審計日誌記錄在默認情況下不啟用AWS S3表由於有限的一致性保證由S3提供關於multi-workspace寫道。如果你使它在S3,確保沒有工作流涉及multi-workspace寫道。未能這樣做可能會導致數據丟失。