DLF儲存最佳化支援表級自適應Compaction、到期快照清理、分區生命週期管理、廢棄檔案清理等能力,協助使用者降低Paimon表使用和營運複雜度,提升計算和儲存的使用效率。本文講述DLF後台執行的智能儲存最佳化策略及其執行機制。
Iceberg 表不具備自動儲存回收機制。為避免儲存成本激增,請務必參考Iceberg Table儲存治理以定期手動清理到期快照和孤立檔案。
儲存最佳化策略介紹
策略類型 | 描述 | DLF執行機制 |
Compaction功能通過合并小檔案為較大檔案,減少檔案數量,進而降低中繼資料管理開銷和查詢時的檔案尋找成本,提升查詢效能,增強Paimon表的查詢效率。 | 在使用者執行Commit寫入資料時,DLF自動觸發Compaction。 | |
為了保證快照檔案對應的歷史狀態可以被正常讀取,只要快照檔案存在,其指向的歷史資料檔案就不能被刪除。隨著快照檔案不斷產生,歷史資料佔用的儲存空間也將逐漸增加。因此需要淘汰不再使用的快照檔案,以釋放它們所指向的、不再活躍的歷史資料空間,從而實現儲存資源的有效管理與釋放。 | 在DLF儲存最佳化作業執行時,DLF自動觸發快照清理。快照到期時間預設為1小時。使用者可通過Paimon表參數調整到期時間,詳見清理到期資料。 | |
業務情境通常只需訪問近期資料,在這種情況下可以按時間對資料進行分區,並設定分區到期時間以自動刪除過於久遠的歷史分區,從而釋放儲存空間。此外,您可以進行儲存分層配置,將訪問頻率較低的分區資料從高效能儲存(如標準儲存)遷移至低成本儲存(如低頻、歸檔或冷Archive Storage),從而在滿足業務需求的同時降低儲存成本。 | 使用者可通過Paimon表參數配置到期時間,詳見設定分區到期時間。配置參數後,會在DLF儲存最佳化作業執行時自動觸發。同時,您也可以通過智能儲存分層,將合格分區資料自動遷移至指定的儲存類型(如標準、低頻、歸檔或冷Archive Storage),也可以在表詳情頁面手動修改儲存類型。通過儲存概覽,您可查看資料目錄、資料庫以及資料表的儲存分層分布情況。 | |
由於作業報錯、重啟等原因,Paimon 表目錄下可能會遺留一些未被提交的臨時檔案。這些廢棄檔案未被任何快照引用,因此無法通過快照到期機制刪除,需定期進行清理。 | 廢棄檔案保留時間長度預設為7天,超過該時間的廢棄檔案將被視為到期並自動清理,因此DLF每7天觸發一次清理任務。 |
開啟/關閉智能儲存最佳化
儲存最佳化頁簽僅在建立 Paimon 表時顯示。
登入資料湖構建控制台。
在資料目錄列表頁面,單擊Catalog名稱。
在資料庫頁簽中,單擊目標資料庫名稱,查看資料表。
在表列表中,單擊目標表名稱,查看錶欄位資訊。
單擊儲存最佳化頁簽,可看到智能儲存最佳化開關預設開啟,單擊
開關,即可關閉。
查看與配置儲存最佳化策略
Compaction
在儲存最佳化頁簽,單擊Compaction,您可查看小檔案合并的執行情況,Rescale記錄,執行歷史等。
根據需求編輯策略模式:
動態資源模式(推薦)
系統根據即時負載自動Auto Scaling計算資源。此模式無需手動規劃容量,適用於流量波動較大的情境。
支援三種配置偏好:
資源延時均衡:在合并速度與資源消耗之間尋求最佳平衡點(預設選項)。
延時優先:分配更多資源以最快速度完成合併,降低資料可見度延遲。
資源優先:限制資源使用率以降低計算成本,允許稍長的合并耗時。
動態資源分派與擴縮容策略
固定資源模式
使用者手動指定用於 Compaction 的計算資源量。此模式適用於流量穩定或對成本控制有嚴格要求的情境。
配置要求:計算資源(CU)配置不得低於 2 CU。
參數設定:支援自訂 Compaction 觸發間隔及 Bucket 數。
查看執行情況
可以查看當前表的最佳化執行情況,支援自訂配置CloudMonitor訂閱警示,更多指標詳情與配置步驟詳情請參見湖表最佳化功能監控。
查看Rescale記錄
記錄了資料表或特定分區進行“桶伸縮”(Bucket Rescaling)的歷史事件。它反映了表底層實體儲存體結構的變更情況。Rescale 機制主要用於解決資料量變化帶來的效能問題。通過Rescale記錄,可以判斷當前表是否是因為正在Rescale,從而沒有進入Compaction流程。
查看執行歷史
可以查看當前表的小檔案合并的執行歷史,它反映了系統如何處理片段檔案以最佳化讀取效能和儲存空間。可以通過此記錄來判斷:
確認任務運行:確保後台合并任務正常執行,防止小檔案無限堆積。
評估壓縮效率:通過對比合并前後的檔案數和大小,評估當前的 Compaction 策略是否合理。
到期快照清理
在儲存最佳化頁簽,單擊Snapshot Expire,您可以配置快照清理規則並查看快照清理結果。
配置快照清理規則
單擊編輯,您可以設定快照保留時間(預設為1小時),單擊儲存,完成配置。
查看快照清理結果
當前Snapshot個數:即時顯示當前剩餘的快照數量。
最早Snapshot資訊:展示表中最早的快照詳情,包括快照ID、提交時間、提交類型、表總行數以及本提交增加行數。
分區生命週期管理
在儲存最佳化頁簽,單擊Partition LifeCycle,您可以進行分區清理規則配置、查看分區清理結果、儲存分層配置。
分區清理規則配置
單擊啟用分區清理右側的
開關,可啟用分區清理。啟用分區清理後,您可根據業務需求進行以下規則配置,單擊儲存,完成配置。
可以通過配置相應 table option 索引值對來完成配置。
配置項
說明
到期策略
(partition.expiration-strategy)
可選擇以下到期策略:
最近訪問時間(access-time):根據分區資料最近訪問時間,進行到期判斷。
分區值(values-time):可以配置分區時間戳記格式和分區欄位模式。
時間戳記格式(partition.timestamp-formatter):可配置例如
yyyy-MM-dd、yyyyMdd、dd/MM/yyyy、dd.MM.yyyy等。時間戳記模式(partition.timestamp-pattern):預設取第一個分區欄位,可配置例如
$dt或者$year-$month-$day等。
最後更新時間(update-time):按照最細粒度分區資料最後更新時間進行到期判斷。
分區保留時間
(partition.expiration-time)
單位:天。可配置例如
30d。最大可設定為999999天。分區保留時間根據所選到期策略,判定起始時間。(可選)儲存之後,也可單擊規則配置右側的編輯,進行再次修改。
若您希望持續保留分區,則無需配置分區到期清理規則,系統預設不會自動清理分區資料。
查看分區清理結果
單擊點擊查看分區列表,可查看當前資料表的分區列表,包括分區名、行數(物理)、引用的檔案個數、總檔案大小、建立人、儲存類型、最新更新人、建立時間、最新動向時間及操作。
儲存分層配置
配置項 | 說明 |
智能儲存分層 |
說明
|
分層策略 |
|
分層規則 | 不同儲存類型的最低儲存時間要求不同。 您可選擇性配置以下分層規則:
|
廢棄檔案清理
在儲存最佳化頁簽,單擊Orphan File Remove,您可查看廢棄檔案清理規則。例如,廢棄檔案的保留時間預設為7天(根據檔案寫入時間判斷),超過該時間的到期廢棄檔案將被系統自動清理。
手動修改儲存類型
在資料庫列表中,單擊資料庫名稱,可查看錶列表。
在表列表中,單擊表名稱,可查看錶欄位。
單擊表詳情頁簽,您可以手動修改分區表和非分區表的儲存類型。
分區表
在分區列表頁簽,您可以對不同儲存類型的分區進行儲存類型修改操作。
標準、低頻、Archive Storage類型的分區:
單擊操作列的修改儲存類型,支援修改為除當前儲存類型外的其他儲存類型。
冷Archive Storage類型的分區:
需先解凍,待解凍完成並恢複為已解凍狀態後,才可以轉換儲存類型。具體操作如下:
單擊解凍,可配置解凍狀態期間,支援選擇分區批量解凍。
取值範圍:1~365 的正整數(單位:天)。
預設值:1天。
當資料進入已解凍狀態時,單擊操作列的修改儲存類型,可修改為其他儲存類型。
非分區表
在表的基本資料中,您可以對儲存類型進行修改。
標準、低頻、Archive Storage類型
單擊儲存類型右側的修改,支援修改為除當前儲存類型外的其他儲存類型。
冷Archive Storage類型
需先解凍,待解凍完成並恢複為已解凍狀態後,才可以轉換儲存類型。具體操作如下:
單擊儲存類型右側的解凍,可配置解凍狀態期間。
取值範圍:1~365 的正整數(單位:天)。
預設值:1天。
當儲存類型變為冷歸檔(已解凍)後,單擊儲存類型右側的修改,支援修改為除當前儲存類型外的其他儲存類型。
說明解凍消耗時間:是指解凍Object所消耗的時間。冷Archive Storage類型的解凍優先順序僅支援標準,解凍消耗時間為2~5小時內完成解凍。
解凍狀態開始時間:是指分區內第一個冷Archive Storage類型的Object在完成解凍操作後,正式進入“已解凍”狀態的時間點。
解凍狀態期間:是指分區內第一個冷Archive Storage類型的Object在完成解凍後,資料處於“已解凍”狀態的有效時間長度。待分區內所有Object均完成解凍後,您可以對分區進行正常的讀取、寫入或儲存類型轉換等操作。一旦解凍狀態期間結束,分區中的資料將重新回到冷歸檔狀態,無法直接存取,需要再次解凍才能操作。
解凍過程
初始時,Object處於冷凍狀態。
使用者提交解凍請求後,Object處於解凍中狀態。解凍消耗時間請以實際為準。
服務端完成解凍任務後,Object進入已解凍狀態。對於表級儲存分層而言,當分區內所有對象均完成解凍後,該分區即可正常訪問。
您可以通過調整分區解凍狀態期間來延長解凍狀態的總時間長度,但總時間長度不能超過該儲存類型允許的解凍狀態期間的最大限制。
解凍狀態期間結束後,Object再次返回到冷凍狀態,且不改變Object原有的儲存類型。若後續仍需訪問資料,則需重新提交解凍請求,並等待解凍完成。
開啟後,系統將根據您配置的生命週期規則,自動對Catalog下所有表進行冷熱分層。請根據業務需求填寫分層策略和分層規則。