Hologres的檔案合并(Compaction)任務通常會佔用執行個體的計算資源,可能影響其他讀寫請求。自Hologres V3.1.11版本起,支援在使用Serverless資源執行資料匯入的同時,利用同一份Serverless資源同步完成Compaction操作,從而避免佔用執行個體計算資源,保障其他任務的效能。
使用方法
-- Session層級使用
SET hg_serverless_computing_run_compaction_before_commit_bulk_load = on;
-- User層級使用
ALTER USER "<role_name>" IN DATABASE <db_name> SET hg_serverless_computing_run_compaction_before_commit_bulk_load = on;
-- DB層級使用
ALTER DATABASE <db_name> SET hg_serverless_computing_run_compaction_before_commit_bulk_load = on;使用限制:
該功能會少量增加資料匯入時間長度,但可極大提升執行個體穩定性。
僅支援對新資料檔案的同步Compaction。如果表存在舊檔案TTL到期需Compaction清理檔案,仍會使用本執行個體資源非同步執行。
同步Compaction僅支援匯入熱存(標準儲存),暫不支援匯入冷存(低頻訪問儲存)。
使用樣本
通過HoloWeb一鍵匯入公用資料集功能,匯入TPC-H 100 GB資料集。
DB層級關閉本功能,而後執行公用資料集匯入任務。
ALTER DATABASE <db_name> SET hg_serverless_computing_run_compaction_before_commit_bulk_load = off;DB層級開啟本功能,再次執行同一個公用資料集匯入任務。
ALTER DATABASE <db_name> SET hg_serverless_computing_run_compaction_before_commit_bulk_load = on;
兩次匯入任務均完成後,觀察執行個體的監控指標,可見匯入任務在正常使用Serverless計算資源執行,同時Compaction任務完全沒有使用本執行個體計算群組的計算資源。
計算群組CPU使用率

匯入任務QPS

Serverless Computing資源使用率
