DLF儲存最佳化支援表級自適應Compaction、到期快照清理、分區生命週期管理、廢棄檔案清理等能力,協助使用者降低Paimon表使用和營運複雜度,提升計算和儲存的使用效率。本文講述DLF後台執行的智能儲存最佳化策略及其執行機制。
儲存最佳化策略介紹
策略類型 | 描述 | DLF執行機制 |
Compaction功能通過合并小檔案為較大檔案,減少檔案數量,進而降低中繼資料管理開銷和查詢時的檔案尋找成本,提升查詢效能,增強Paimon表的查詢效率。 | 在使用者執行Commit寫入資料時,DLF自動觸發Compaction。 | |
為了保證快照檔案對應的歷史狀態可以被正常讀取,只要快照檔案存在,其指向的歷史資料檔案就不能被刪除。隨著快照檔案不斷產生,歷史資料佔用的儲存空間也將逐漸增加。因此需要淘汰不再使用的快照檔案,以釋放它們所指向的、不再活躍的歷史資料空間,從而實現儲存資源的有效管理與釋放。 | 在DLF儲存最佳化作業執行時,DLF自動觸發快照清理。快照到期時間預設為1小時。使用者可通過Paimon表參數調整到期時間,詳見清理到期資料。 | |
業務情境通常只需訪問近期資料,在這種情況下可以按時間對資料進行分區,並設定分區到期時間以自動刪除過於久遠的歷史分區,從而釋放儲存空間。此外,您可以進行儲存分層配置,將訪問頻率較低的分區資料從高效能儲存(如標準儲存)遷移至低成本儲存(如低頻、歸檔或冷Archive Storage),從而在滿足業務需求的同時降低儲存成本。 | 使用者可通過Paimon表參數配置到期時間,詳見設定分區到期時間。配置參數後,會在DLF儲存最佳化作業執行時自動觸發。同時,您也可以通過智能儲存分層,將合格分區資料自動遷移至指定的儲存類型(如標準、低頻、歸檔或冷Archive Storage),也可以在表詳情頁面手動修改儲存類型。通過儲存概覽,您可查看資料目錄、資料庫以及資料表的儲存分層分布情況。 | |
廢棄檔案(Orphan File)是指存在於表格儲存體路徑下、但未被任何快照引用的檔案,典型來源包括寫入任務異常中斷、Commit 失敗、異常清理流程殘留等。由於未被任何快照引用,廢棄檔案無法通過快照到期機制刪除,需定期進行清理。 | 您可以在控制台手動觸發廢棄檔案清理,也可以開啟廢棄檔案自動清理。被清理的廢棄檔案會臨時進入資源回收筒,超過保留時間後自動刪除。 |
開啟/關閉智能儲存最佳化
儲存最佳化頁簽僅在建立 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,您可以手動觸發廢棄檔案清理。
如需開啟廢棄檔案自動清理,請在Catalog配置中添加auto-orphan-files-clean.enabled = true。被清理的廢棄檔案會臨時進入檔案資源回收筒(system.trash),保留時間可通過Catalog配置dlf.trashed-file-retained-days調整。
手動修改儲存類型
在数据库列表中,單擊資料庫名稱,可查看錶列表。
在表列表中,單擊表名稱,可查看錶欄位。
單擊表详情頁簽,您可以手動修改分區表和非分區表的儲存類型。
分區表
在分区列表頁簽,您可以對不同儲存類型的分區進行儲存類型修改操作。
標準、低頻、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下所有表進行冷熱分層。請根據業務需求填寫分層策略和分層規則。