管理Delta表的大小

可以幫助您管理Delta表大小的建議。

寫的何塞·岡薩雷斯

最後發布時間:2022年5月23日

Delta表與傳統表不同。Delta表包括ACID事務和時間旅行功能,這意味著它們維護事務日誌和過時的數據文件。這些附加功能需要存儲空間。

在本文中,我們將討論可以幫助您管理Delta表大小的建議。

啟用文件係統版本控製

當您啟用文件係統版本控製時,您將在同一個存儲桶中保留數據的多個變體。文件係統創建數據的版本,而不是刪除項,這增加了Delta表的可用存儲空間。

使布魯姆過濾器

Bloom過濾器索引(AWS|Azure|GCP)是一種節省空間的數據結構,它支持在選定的列上跳過數據,特別是對於包含任意文本的字段。Databricks支持文件級Bloom過濾器;每個數據文件可以有一個與之關聯的布魯姆過濾器索引文件。在讀取文件之前,Databricks檢查索引文件,隻有當索引表明該文件可能匹配數據過濾器時才讀取該文件。

Bloom過濾器的大小取決於創建Bloom過濾器的集合中元素的數量和所需的假陽性概率(FPP)。FPP越低,每個元素使用的比特數就越高,它就越準確,但要以更多的存儲空間為代價。

回顧你的δlogRetentionDuration政策

日誌文件默認保留30天。該值可以通過增量進行配置。logRetentionDuration財產。方法可以為該屬性設置值修改表集tblpropertiesSQL的方法。你保留的時間越長,你消耗的存儲空間就越多。例如,如果你設置三角洲。logRetentionDuration = '365天'它將日誌文件保存365天,而不是默認的30天。

真空你的差值表

真空(AWS|Azure|GCP)刪除不再處於表事務日誌的最新狀態且超過保留閾值的數據文件。文件的刪除是根據它們從Delta事務日誌中邏輯刪除的時間+保留時間,而不是它們在存儲係統上的修改時間戳。默認閾值為7天。Databricks不會自動觸發真空對Delta表的操作。此命令必須手動執行。真空幫助您刪除不再需要的過時文件。

優化你的差值表

優化(AWS|Azure|GCP)命令將多個Delta文件壓縮為單個大文件。這可以幫助您避免使用太多的小文件,從而提高Delta表的整體查詢速度和性能。默認情況下,優化創建1 gb的文件。