Serverless Computing使用指南

对于CPU或内存开销大的SQL作业,Hologres Serverless Computing功能支持其使用独立的Serverless Computing资源,以确保任务间资源隔离,避免资源竞争与相互干扰。本文将介绍如何使用Serverless Computing功能。

使用限制

  • Hologres V2.1.17及以上版本的通用型计算组型实例支持使用Serverless Computing。

    说明

    如果您的实例是V2.1.17以下版本,请您使用实例升级或加入实时数仓Hologres交流群,申请升级实例,详情请参见如何获取更多的在线支持?

  • 以下情况不支持使用Serverless Computing:

    • 不支持只读从实例的查询。主实例、计算组实例可正常使用。

    • 开启了多行DML事务的查询,如set hg_experimental_enable_transaction = on

    • 使用Fixed PlanSQL。

    • DLF外部表查询与写入。

    • 跨库查询与写入。

    • 加密表(包括内部表和外部表)。

  • Serverless Computing现已支持如下任务:

    • 支持主要的DML任务,包括INSERT(不含INSERT OVERWRITE)、INSERT ON CONFLICT(UPSERT)、DELETEUPDATE。

    • V2.2.14版本起,支持DQL任务。

    • V3.0.1版本起,支持DML中的COPY任务。

    • V3.0.9版本起,支持DML中的CREATE TABLE AS(CTAS)任务。

    • V3.0.19V2.2.42版本起,支持RESHARDING任务。

    • V3.0.26版本起,支持执行INSERT OVERWRITE任务(存储过程hg_insert_overwrite),也支持在存储过程中执行DMLDQL操作。

    • V3.1.0版本起,支持DML中的原生INSERT OVERWRITE语法,支持REBUILD任务。

    • V3.1.3版本起,支持读写加密表(含Hologres加密内表及MaxCompute加密外表),需开启GUC参数hg_serverless_computing_enable_encrypted_table,详情请参见数据加密

  • 如果需要使用EXTENSION,现在仅支持如下EXTENSION:

    • ClickHouse

    • Flow Analysis

    • PostGIS

    • RoaringBitmap

    • BSI

    • Proxima

发布地域

目前Serverless Computing功能已发布的地域及可用区如下:

说明

下述地域的其他可用区暂不支持Serverless Computing功能,如有需要,请提交工单加入实时数仓Hologres交流群,申请迁移可用区。目前可用区支持热迁移,实例影响与热升级相同,详情请参见实例升级

地域

可用区

华东1(杭州)

可用区J、K

华南1(深圳)

可用区F、D

华东2(上海)

可用区E、L

华北2(北京)

可用区I、L

中国(香港)

可用区B、D

华东 1 金融云

可用区K

新加坡

可用区A、C

印度尼西亚(雅加达)

可用区B

美国(弗吉尼亚)

可用区A

德国(法兰克福)

可用区A

开启Serverless Computing

新购实例

访问Hologres实例列表,单击新增引擎实例,在实例购买页面,设置开启Serverless Computing参数为。关于新购实例详情,请参见购买Hologres

serverdddpp

存量实例

访问Hologres实例列表,在顶部菜单栏左侧选择地域,选择目标实例,单击操作列中的升配,在变配页面,设置开启Serverless Computing参数选为

重要

开启Serverless Computing配置期间会重启实例,请尽量在业务低峰期执行变配操作,建议应用具备重连机制。升配计算资源配置涉及计算资源重新分配,元数据变更等操作,通常需要2~5分钟,请您耐心等待。

image

若您暂不需要开通Serverless Computing,可通过以下方式进行操作:

您可以访问Hologres实例列表,在顶部菜单栏左侧选择地域,选择目标实例,单击操作列中image,选择降配。在降配页面,设置开启Serverless Computing参数选为

说明
  • 关闭Serverless Computing配置期间会重启实例,请尽量在业务低峰期执行变配操作,建议应用具备重连机制。升配计算资源配置涉及计算资源重新分配,元数据变更等操作,通常需要2~5分钟,请您耐心等待。

  • Serverless Computing关闭后,不支持指定Serverless Computing资源,当前Serverless Computing资源中运行和排队的任务都会失败。

使用建议

建议使用Serverless Computing资源执行SQL时,同时Session级别配置活跃Query运行超时时间,以避免SQL运行时间过长或者等待时间过长,导致堵塞后续所有任务。

  • 语法示例

    set statement_timeout = <time>;

    参数说明

    time:超时时间取值范围为0~2147483647ms,单位默认为ms(当time后加单位时需要使用单引号,否则会报错)。默认超时时间为8小时。

  • 使用示例

    -- 使用 Serverless Computing 资源执行 SQL.
    SET hg_computing_resource = 'serverless';
    
    -- 设置该SQL的优先级是5.
    SET hg_experimental_serverless_computing_query_priority to 5;
    
    --设置活跃query超时时间是2小时.
    SET statement_timeout = '2h';
    
    -- 执行 SQL.
    INSERT INTO sink_tbl SELECT * FROM source_tbl;
    
    -- 重置配置
    reset hg_computing_resource;
    reset statement_timeout;

使用Serverless Computing资源执行SQL

  • 您可以通过执行如下代码,使用Serverless Computing资源执行SQL命令。

    -- 使用Serverless Computing资源执行SQL,默认值为local,表示使用本实例资源执行SQL。
    SET hg_computing_resource = 'serverless';
    
    --提交DML后重置配置,保证非必要的SQL不会使用serverless资源。
    reset hg_computing_resource;
    重要
    • 建议Session级别设置,请勿在数据库级别修改该参数。

    • 建议提交DML后,使用reset hg_computing_resource重置资源,重置后的SQL将在本地执行,保证非必要的SQL不使用serverless资源。

  • 使用示例

    --数据准备--
    -- 创建源表
    CREATE TABLE source_tbl ( id int );
    -- 创建目标表
    CREATE TABLE sink_tbl ( id int );
    -- 写入样例数据
    INSERT INTO source_tbl
    SELECT * FROM generate_series(1, 99999999);
    
    --使用Serverless Computing资源执行SQL--
    SET hg_computing_resource = 'serverless';
    --执行SQL
    INSERT INTO sink_tbl SELECT * FROM source_tbl;
    -- 重置配置
    reset hg_computing_resource;

    您可以执行以下代码,查看上述SQL执行计划。

    -- 使用Serverless Computing资源执行SQL
    SET hg_computing_resource = 'serverless';
    
    -- 执行SQL
    EXPLAIN INSERT INTO sink_tbl SELECT * FROM source_tbl;
    
    -- 重置配置
    reset hg_computing_resource;

    返回结果如下。返回结果中Computing Resource: Serverless:表示使用Serverless Computing资源执行。

                                            QUERY PLAN                                        
    ------------------------------------------------------------------------------------------
     Gather  (cost=0.00..5.18 rows=100 width=4)
       ->  Insert  (cost=0.00..5.18 rows=100 width=4)
             ->  Redistribution  (cost=0.00..5.10 rows=100 width=4)
                   ->  Local Gather  (cost=0.00..5.10 rows=100 width=4)
                         ->  Decode  (cost=0.00..5.10 rows=100 width=4)
                               ->  Seq Scan on source_tbl  (cost=0.00..5.00 rows=100 width=4)
     Computing Resource: Serverless
     Optimizer: HQO version 2.1.0
    (8 rows)

Serverless Computing资源量

实例的Serverless可用资源量上限

Hologres实例可申请的Serverless Computing资源量(以下简称Quota)受实例计算资源限制,对应关系如下表。

说明
  • Quota表示每个实例执行阶段(EXECUTE)的SQL所占用的Serverless Computing资源的上限。

  • 每个可用区的Serverless Computing资源池由当前可用区所有实例共享。

  • 超过实例Quota限制或Serverless Computing资源池已满的情况下,提交的SQL会排队(进入QUEUE状态)等待资源。

  • Serverless Computing资源池中的SQL执行期间,申请到的计算资源由当前SQL独享,不会同时执行其他SQL。

实例计算资源(CU)

Serverless Computing资源Quota

实例计算资源<32

不支持使用Serverless Computing。

32=<实例计算资源<688

Serverless Computing资源Quota为实例计算资源的3倍。例如32CU的实例,可用的Serverless Computing资源Quota=32*3=96 CU。

说明

Hologres V3.0.33版本起,Serverless Computing资源Quota调整为实例计算资源的5倍,最大不超过2048 CU。

实例计算资源>=688

支持最高达到2048CU的资源配额。

设置单条SQL使用的Serverless资源量

Hologres Serverless Computing中,单条SQL可使用的Serverless Computing资源量由以下三个参数决定。系统会取三个参数的最小值为单条SQL申请资源。实际申请资源以15 CU为步长进行申请。

参数

说明

Quota

Hologres实例可使用的Serverless Computing资源上限,详情请参见设置Max Cores

hg_experimental_serverless_computing_max_cores(下文简称Max Cores

每条SQL可被分配的Serverless Computing资源上限,默认为512 CU,支持修改。

hg_experimental_serverless_computing_required_cores(下文简称Required Cores

系统自动估算该SQL需要使用的Serverless Computing资源量,支持修改,修改后系统不再自动估算。

设置Max Cores

  • 您可以执行如下代码,设置每条SQL被分配的Serverless Computing资源上限。

    说明

    不建议对该配置进行修改,以免因分配的资源不足而导致SQL出现内存溢出(OOM)问题。如需修改,请务必进行充分测试。

    -- 配置单个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

针对hg_experimental_serverless_computing_required_cores参数,系统会根据SQL的复杂程度自动估算需要的资源量。系统自动估算出的资源量可以有效平衡Serverless资源利用和SQL执行时长。若需某条SQL能够分配到更多的Serverless Computing资源,您可通过设置hg_experimental_serverless_computing_required_cores参数进行Serverless Computing资源分配。

说明

不建议对该配置进行修改,以免因分配的资源不足而导致SQL出现内存溢出(OOM)问题。如需修改,请务必进行充分测试。

  • 您可以执行如下代码,设置单个SQL语句在执行时所分配的Serverless Computing资源。

    -- 默认为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的计算资源不由系统估算,申请96CU的计算资源
    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;

Serverless Computing优先级

Hologres支持为进入Serverless ComputingSQL设置优先级。优先级取值范围1~5,5为最高优先级,默认优先级为3。通过设置单条SQL可使用的资源量上限与按优先级的排队机制,保障进入Serverless ComputingSQL稳定有序执行。

示例场景:

假设现有Hologres实例规格为32 CU,该实例可使用的Serverless Computing资源上限为96 CU。当SQL A正在使用Serverless Computing64 CU资源运行,同时,Serverless任务队列中已有SQL B(需要申请48 CU资源,优先级5)、SQL C(需要申请32 CU资源,优先级3)等待运行。此时,系统会等待SQL A执行完成后优先申请48 CU资源用于执行SQL B,而非先使用剩余的32 CU资源来执行SQL C。

  • 您可以执行如下代码,设置Serverless Computing资源中SQL执行的优先级。

    -- 优先级范围为 [1, 5], 数值越大,优先级越高,越优先分配资源(和分配资源数量无关)
    -- 默认优先级为3.
    SET hg_experimental_serverless_computing_query_priority to 5;
    -- 重置配置
    reset hg_experimental_serverless_computing_query_priority;
  • 使用示例

    --使用Serverless Computing资源执行 SQL.
    SET hg_computing_resource = 'serverless';
    
    -- 设置该SQL的优先级是5
    SET hg_experimental_serverless_computing_query_priority to 5;
    
    -- 执行SQL
    INSERT INTO sink_tbl SELECT * FROM source_tbl;
     
    -- 重置配置
    reset hg_computing_resource;
    reset hg_experimental_serverless_computing_query_priority;

高级操作

批量指定SQL使用Serverless资源执行,可参考如下高级操作,下列操作按优先级由高到低生效:

  1. Session级别(SQL级别)设置hg_computing_resource参数为'serverless',使用Serverless资源执行。请参见Serverless Computing优先级

  2. 用户级别设置hg_computing_resource参数为'serverless',使用Serverless资源执行。

  3. 查询队列Query Queue级别设置全部使用Serverless资源执行。

  4. 符合自适应Serverless条件,使用Serverless资源执行。

  5. 不符合上述条件,则使用本实例资源执行。如果符合大查询自动使用Serverless资源重跑的条件,则大查询自动熔断并使用Serverless资源重跑.。

设置用户/角色的全部SQL默认通过Serverless Computing执行

您可以执行如下代码,针对某一用户/角色,使其发起的全部SQL均默认使用Serverless Computing资源执行。

--针对某用户在某DB下,默认使用Serverless Computing资源执行SQL
ALTER USER <user_name> IN DATABASE <db_name> SET hg_computing_resource = 'serverless';
说明
  • 该配置方法的优先级高于数据库级别配置GUC,低于Session级别配置GUC,详情请参见GUC参数

  • 若需要取消上述配置,请执行代码ALTER USER <user_name> IN DATABASE <db_name> RESET hg_computing_resource;

设置查询队列Query Queue的全部SQL通过Serverless Computing执行

您可以执行如下代码,以针对某一查询队列,使其所有SQL语句均使用Serverless Computing资源执行。有关查询队列的配置方法,详情请参见查询队列Query Queue

说明

如果实例所在可用区不支持Serverless Computing,仍将使用本实例计算资源执行。

  • 通用型实例

    -- 设置目标Queue中的查询全部通过Serverless资源运行
    CALL hg_set_query_queue_property('<query_queue_name>', 'computing_resource', 'serverless');
    
    -- (可选)设置目标Queue中的查询使用Serverless资源时的优先级,支持1-5,默认为3
    CALL hg_set_query_queue_property('<query_queue_name>', 'query_priority_when_using_serverless_computing', '<priority>');
  • 计算组型实例

    -- 设置目标Queue中的查询全部通过Serverless资源运行
    CALL hg_set_query_queue_property('<warehouse_name>', '<query_queue_name>', 'computing_resource', 'serverless');
    
    -- (可选)设置目标Queue中的查询使用Serverless资源时的优先级,支持1-5,默认为3
    CALL hg_set_query_queue_property('<warehouse_name>', '<query_queue_name>', 'query_priority_when_using_serverless_computing', '<priority>');

自适应Serverless

SQL使用的Serverless资源量由Quota、Max Cores、Required Cores三者的最小值决定。其中,Required Cores支持通过Hologres系统自动估算。

Hologres V3.1版本起支持自适应Serverless路由能力。您可以自定义阈值,将系统自动估算Required Cores较大的Query自动使用Serverless资源执行。该阈值包括绝对阈值和比例阈值两方面,当系统自动估算的Required Cores同时超过两个阈值时,Query会自动使用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提供资源预估函数(hg_estimate_adaptive_serverless_computing),用于计算对应SQL由系统自动估算的Required Cores以及自适应Serverless功能是否生效。函数有如下返回值:

返回值名称

说明

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

当前配置的绝对阈值。

-- 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;$$);

大查询自动使用Serverless资源重跑

如果SQL已经使用本实例资源执行,支持定义执行时长超过x秒或出现OOMQuery为大查询,并支持配置大查询自动熔断,进而使用Serverless资源重跑。详情请参见大查询控制

监控与运维

查看实例使用Serverless Computing的监控指标

您可通过以下方式查看Serverless Query最长运行时长、Serverless Computing Query排队数量、Serverless Computing资源Quota使用率的监控指标。如有需要,可进一步配置监控告警,详情请参见云监控

  1. 登录Hologres管理控制台

  2. Hologres管理控制台顶部菜单栏,选择目标地域。

  3. 单击左侧导航栏的实例列表

  4. 实例列表页面单击目标实例名称,进入实例详情页。

    您也可以单击目标实例操作列的管理,进入实例详情页。

  5. 在实例详情页左侧导航栏,单击监控信息,查看监控指标。

查看Serverless Computing资源中SQL任务的运行状态

  • 查看Serverless Computing资源中正在运行的SQL任务。

    SELECT
        *,
        (running_info::json) ->> 'computing_resource' AS computing_resource,
        (running_info::json) ->> 'current_stage' AS current_stage
    FROM
        hg_stat_activity
    WHERE (running_info::json) ->> 'computing_resource' = 'Serverless'
        AND (running_info::json) -> 'current_stage'->>'stage_name' = 'EXECUTE'
  • 查看Serverless Computing资源中排队的SQL任务。

    SELECT
        *,
        (running_info::json) ->> 'computing_resource' AS computing_resource,
        (running_info::json) ->> 'current_stage' AS current_stage
    FROM
        hg_stat_activity
    WHERE (running_info::json) ->> 'computing_resource' = 'Serverless'
        AND (running_info::json) -> 'current_stage'->>'stage_name' = 'QUEUE'
  • 查看Serverless Computing资源中SQL任务的运行状态。

    SELECT
        *,
        (running_info::json) ->> 'computing_resource' AS computing_resource,
        (running_info::json) ->> 'current_stage' AS current_stage
    FROM
        hg_stat_activity
    WHERE 
        query_id = '<query_id>';

查询历史的Serverless Computing任务

说明

hologres.hg_query_loghologres.hg_serverless_computing_query_log均保留近30天的数据。

  • 在慢Query日志中查看在Serverless Computing资源中执行的历史任务。

    SELECT
        *,
        extended_cost::json ->> 'queue_time_ms' AS queue_time_ms,--Serverless Computing资源中SQL等待排队时长。
        extended_cost::json ->> 'serverless_allocated_cores' AS serverless_allocated_cores,--Serverless Computing资源分配给当前SQLCU数。
        extended_cost::json ->> 'serverless_allocated_workers' AS serverless_allocated_workers,--Serverless Computing资源分配给当前SQLWorker数。
        extended_cost::json ->> 'serverless_resource_used_time_ms' AS serverless_resource_used_time_ms--当前SQL实际占用Serverless Computing资源的时长。
    FROM
        hologres.hg_query_log
    WHERE
        query_extinfo @> ARRAY['serverless_computing'::text];
  • hologres.hg_serverless_computing_query_log视图中查看在Serverless Computing资源中执行的历史任务。

    SELECT
        *
    FROM
        hologres.hg_serverless_computing_query_log;
    说明

    2.1.18版本开始,为了方便查询,将慢Query日志中Serverless Computing任务相关内容固化为列,并且新增了hologres hg_serverless_computing_query_log视图。相对于慢Query日志hologres.hg_serverless_computing_query_log视图中新增以下字段:

    • queue_time_ms:Serverless Computing资源中SQL等待排队时长,单位毫秒(ms)。

    • serverless_allocated_cores:Serverless Computing资源实际分配给当前SQLCU数。

    • serverless_allocated_workers:Serverless Computing资源实际分配给当前SQLWorker数。

    • serverless_resource_used_time_ms:当前SQL实际占用Serverless Computing资源的时长,单位毫秒(ms)。

    • extended_info字段中新增以下信息:

      • serverless_computing_source:表示SQL来源,表示使用Serverless Computing资源执行的SQL。取值如下:

        • user_submit:自行指定使用Serverless资源执行的SQL,与Query Queue无关。

        • query_queue:指定查询队列的SQL全部由Serverless资源执行。

        • big_query_isolation_service:通过自适应Serverless功能而使用Serverless资源运行的Query,请参见自适应Serverless

        • query_queue_rerun:通过Query Queue的大查询控制功能,自动使用Serverless资源重新运行的SQL。

      • query_id_of_triggered_rerun:该字段仅在serverless_computing_sourcequery_queue_rerun时存在,表示重新运行的SQL对应的原始Query ID。

    针对部分特殊任务,如COPY、CTAS、INSERT OVERWRITE等,在慢Query日志中会产生多条记录,这些记录包括任务SQL本身及其执行过程中产生的INSERT记录。其中的INSERT会实际使用Serverless资源执行。可以通过任务SQL本身的trans_id字段与INSERT记录进行关联,关联示例如下。

    SELECT 
        query_id,
        query,
        extended_info 
    FROM 
        hologres.hg_query_log 
    WHERE 
        extended_info ->> 'source_trx' = '<transaction_id>' -- 通过COPY/CTAS/RESHARDING等本身记录的trans_id字段可以取到transaction_id
        -- extended_info ->> 'src_query_id' = 'query_id'	-- 存储过程不是一个事务,因此需要通过query_id字段关联
        -- query like '%<transaction_id>%'	-- RESHARDING任务无法通过extended_info字段关联,需要通过query字段
    ORDER BY 
        query_start
    ;

查看当前数据库运行的SQL占用的Serverless Computing资源

  • 查看Serverless Computing资源中正在运行的SQL任务占用的总资源量。

    SELECT
        datname::text as db_name,
        (running_info::json) -> 'current_stage' ->> 'stage_name' AS current_stage,
        SUM(((running_info::json) -> 'current_stage' ->> 'serverless_allocated_cores')::int) AS total_computing_resource,
        count(1) as query_qty
    FROM
        hg_stat_activity
    WHERE (running_info::json) ->> 'computing_resource' = 'Serverless'
    GROUP BY
        1,
        2;
  • 返回结果字段说明

    字段

    描述

    db_name

    数据库名称。

    current_stage

    当前SQL执行阶段。

    • PARSE:SQL解析。

    • OPTIMIZE:生成执行计划。

    • QUEUE:等待资源。

    • START:Query开始阶段。

    • EXECUTE:Query执行阶段。

    • FINISH:Query完成。

    total_computing_resource

    在当前数据库和SQL执行阶段,使用的Serverless Computing资源总量。

    query_qty

    SQL数量。