全部產品
Search
文件中心

Hologres:管理Serverless Computing資源

更新時間:Jan 10, 2026

Hologres支援使用Serverless Computing資源執行任務。在使用過程中,執行個體層級和SQL層級可使用的計算資源量存在限制。本文為您介紹Serverless Computing的資源量限制,以及如何管理SQL可使用的Serverless資源。

Serverless Computing可用資源量

Hologres執行個體可申請使用的Serverless Computing資源量(下文簡稱:Quota)受執行個體獨享計算資源限制,對應關係如下表。

執行個體計算資源(CU)

Serverless Computing資源Quota

執行個體計算資源<32

不支援使用Serverless Computing。

32=<執行個體計算資源<688

  • Serverless Computing資源Quota為執行個體計算資源的3倍。例如:32 CU的執行個體,可用的Serverless Computing資源Quota=32*3=96 CU。

  • Hologres V3.0.33版本起,Quota調整為執行個體計算資源的5倍,最大不超過2048 CU(V3.1.9版本起增加至4096 CU)。

  • Hologres V4.0.13版本起,Quota調整為執行個體計算資源的10倍,最大不超過4096CU。

執行個體計算資源>=688

支援最高達到2048 CU的資源配額。

V3.1.9版本起支援最高達到4096 CU的資源配額。

說明
  • Quota表示每個執行個體正在運行(EXECUTE)狀態的所有SQL佔用的Serverless Computing資源的上限。

  • 每個可用性區域的Serverless Computing資源集區由當前可用性區域所有執行個體共用。

  • Serverless Computing屬於後付費隨用隨付的計算資源,不承諾可分配到計算資源。超過執行個體 Quota 限制或可用性區域的 Serverless資源集區已滿的情況下,提交的 SQL 會排隊(進入QUEUE 狀態)等待資源。

設定SQL使用的Serverless資源量

在Hologres Serverless Computing中,有如下三個參數/限制決定了單條SQL使用Serverless Computing的資源量,系統會取如下三個參數的最小值為單條SQL申請資源。實際申請資源時以15 CU為步長進行申請。

參數/限制

說明

Quota

Hologres執行個體可使用的Serverless Computing資源上限。

hg_experimental_serverless_computing_max_cores(以下簡稱Max Cores)

每條SQL可被分配的Serverless Computing資源上限,支援修改。

  • V3.0.42、V3.1.10版本前預設為512。

  • V3.0.42、V3.1.10版本起,預設為1024。

hg_experimental_serverless_computing_required_cores(以下簡稱Required Cores)

系統自動估算的該SQL需要使用的Serverless Computing資源量,預設為0,即使用系統自動估算的資源量。支援修改,修改後,系統實際使用的資源量為 max(修改值, 系統估算資源*0.5)。

設定Max Cores

您可以執行如下代碼,設定每條SQL可使用的Serverless Computing資源上限。

說明
  • 不建議修改此配置,以免SQL分配資源過少,如需修改,請充分測試。

-- 配置單個Serverless Computing分配的最大CU,預設為512。
SET hg_experimental_serverless_computing_max_cores = 512;

-- 重設配置
reset hg_experimental_serverless_computing_max_cores;

使用樣本:

-- 使用Serverless Computing資源執行SQL
SET hg_computing_resource = 'serverless';

-- 設定單條SQL最多使用32CU執行
SET hg_experimental_serverless_computing_max_cores = 32;

-- 執行SQL
INSERT INTO sink_tbl SELECT * FROM source_tbl;

-- 重設配置
reset hg_computing_resource;
reset hg_experimental_serverless_computing_max_cores;

設定Required Cores

針對Required Cores,系統會根據SQL的複雜程度自動估算需要的資源量,系統自動估算出的資源量可以有效平衡Serverless資源利用和SQL執行時間長度。

如果您希望某條SQL能夠分配更多的Serverless Computing資源,以提高執行效率,您可以執行如下代碼,自行指定該SQL使用的Serverless資源量。

說明
  • 不建議修改此配置,以免SQL因分配的資源過少而OOM。如需修改,請充分測試。

  • 為提升系統穩定性,在指定Required Cores時,系統也會進行資源最佳化,實際執行SQL使用的資源量為 max(required_cores, 預估資源*0.5)。

-- 預設為0,表示該Serverless Computing的計算資源由系統自動估算
SET hg_experimental_serverless_computing_required_cores = XX;

-- 重設配置
reset hg_experimental_serverless_computing_required_cores;

使用樣本:

-- 使用Serverless Computing資源執行SQL
SET hg_computing_resource = 'serverless';

-- Serverless Computing的計算資源不由系統估算, 實際申請資源量為 max(96, 系統估算資源*0.5)
SET hg_experimental_serverless_computing_required_cores = 96;

-- 執行SQL
INSERT INTO sink_tbl SELECT * FROM source_tbl;

-- 重設配置
reset hg_computing_resource;
reset hg_experimental_serverless_computing_required_cores;

調整Required Cores策略

若您發現當前系統自動預估的計算資源量不足或溢出,您可修改如下參數來調整系統自動預估Required Cores的策略。

  • 參數預設值為4,屬於“中性策略”。

  • 如果系統預估的資源量不足,可以增加參數值。例如:將其設定為8,原本申請60 CU的請求將調整為申請120 CU。

  • 如果系統預估的資源量溢出,可以減少參數值。例如:將其設定設為2,原本申請60 CU的請求將調整為申請30 CU。

-- SQL層級修改
SET hg_experimental_serverless_computing_resource_allocation_ratio = 4;

-- User層級修改
ALTER USER "ROLE_NAME" IN DATABASE DB_NAME SET hg_experimental_serverless_computing_resource_allocation_ratio = 4;

-- DB層級修改
ALTER DATABASE DB_NAME SET hg_experimental_serverless_computing_resource_allocation_ratio = 4;