全部產品
Search
文件中心

Hologres:自適應Serverless計算

更新時間:Aug 05, 2025

在Serverless Computing資源執行讀寫任務時,部分請求具有不可預測性,可能導致計算資源瞬間耗盡,影響其他任務。自Hologres V3.1版本起,引入了自適應Serverless計算功能,可自動識別大規模任務並動態分配Serverless資源執行,從而提升系統穩定性和資源使用率。

原理介紹

SQL使用的Serverless資源量由Quota、Max Cores、Required Cores三者的最小值決定。其中,Required Cores支援通過Hologres系統自動估算。Hologres會根據SQL的複雜度和相關表的資料量等因素,綜合估算出該SQL使用Serverless Computing的最優資源量。

依託於Hologres針對SQL自動估算的最優資源量,可由使用者自訂資源量閾值,超過閾值的SQL被定義為“大查詢”,自動使用Serverless資源執行。

功能使用

Hologres支援自訂兩類資源量閾值,包括絕對閾值和比例閾值。當系統自動估算的Required Cores同時超過兩個閾值時,SQL才會自動使用Serverless資源執行。

  • 開啟自使用Serverless功能。

    兩個參數需同時開啟,該功能才會生效。

    -- Session層級開啟
    SET hg_enable_adaptive_serverless_computing = on;
    SET hg_adaptive_serverless_computing_enable_big_query_isolation = on;
    
    -- User層級開啟
    ALTER USER "<role_name>" IN DATABASE <db_name> SET hg_enable_adaptive_serverless_computing = on;
    ALTER USER "<role_name>" IN DATABASE <db_name> SET hg_adaptive_serverless_computing_enable_big_query_isolation = on;
    
    -- DB層級開啟
    ALTER DATABASE <db_name> SET hg_enable_adaptive_serverless_computing = on;
    ALTER DATABASE <db_name> SET hg_adaptive_serverless_computing_enable_big_query_isolation = on;
  • 修改自適應Serverless功能的閾值。Required Cores > max(比例閾值, 絕對閾值)時,Query自動使用Serverless資源執行。

    • hg_adaptive_serverless_computing_min_resource_ratio_threshold:比例閾值係數,預設值0.3。

      • 計算群組型執行個體:比例閾值 = 比例閾值係數 * 計算群組計算資源。

      • 通用型執行個體:比例閾值 = 比例閾值係數 * 執行個體計算資源。

    • hg_adaptive_serverless_computing_min_cores_threshold:絕對閾值,預設值256。

    -- Session層級修改
    SET hg_adaptive_serverless_computing_min_resource_ratio_threshold = 0.3;
    SET hg_adaptive_serverless_computing_min_cores_threshold = 256;
    
    -- User層級修改
    ALTER USER "<role_name>" IN DATABASE <db_name> SET hg_adaptive_serverless_computing_min_resource_ratio_threshold = 0.3;
    ALTER USER "<role_name>" IN DATABASE <db_name> SET hg_adaptive_serverless_computing_min_cores_threshold = 256;
    
    -- DB層級修改
    ALTER DATABASE <db_name> SET hg_adaptive_serverless_computing_min_resource_ratio_threshold = 0.3;
    ALTER DATABASE <db_name> SET hg_adaptive_serverless_computing_min_cores_threshold = 256;

功能驗證

由於自適應Serverless功能是否應用會受系統自動估算邏輯影響,Hologres提供資源預估函數,用以計算對應SQL由系統自動估算的Required Cores數量以及自適應Serverless功能是否生效。

-- SQL不涉及單引號轉義時使用
SELECT * FROM hologres.hg_estimate_adaptive_serverless_computing('select * from tbl;');

-- SQL涉及單引號轉義時使用
SELECT * FROM hologres.hg_estimate_adaptive_serverless_computing($$insert into test_tbl_dst_1 select * from test_tbl_src;$$);

函數有如下傳回值:

傳回值名稱

說明

estimated_cores

該SQL由系統自動估算的Required Cores數量。

status

該SQL在當前參數配置下是否受自適應Serverless功能作用,並自動使用Serverless資源執行。

  • eligible:符合閾值條件,並將自動使用Serverless資源執行。

  • ineligible:不符合閾值條件,仍使用本執行個體資源執行。

  • invalid:不符合Serverless Computing的適用條件,仍使用本執行個體資源執行。

adaptive_serverless_computing_min_ratio_threshold

當前配置的比例閾值係數。

adaptive_serverless_computing_min_cores_threshold

當前配置的絕對閾值。