云数据库 GAUSSDB-HTAP系统函数

时间:2024-11-13 14:46:07

HTAP系统函数

由于HTAP特性不支持分布式,enable_htap在分布式中不可以设置为on,所以查以下系统函数时会显示为空或者报错:enable_htap未打开。

  • gs_htap_tmu_data(rel_oid oid, rowgroup_id integer)

    描述:查看实时事务单元TMU中的活跃事务数据。当rowgroup_id为0时,返回表中所有活跃事务数据;当rowgroup_id非0时,返回表中指定行组中的活跃事务数据。

    返回值类型:record

    备注:必须是系统管理员或运维管理员才能执行此函数。

    本函数对OLTP业务有一定影响,仅作为运维接口使用,且不建议频繁执行。

    表1 gs_htap_tmu_data参数说明

    参数类型

    参数名

    类型

    描述

    输入参数

    rel_oid

    oid

    行存表oid信息。

    输入参数

    rowgroup_id

    integer unsigned

    行组唯一标识。

    输出参数

    rel_oid

    oid

    行存表oid信息。

    输出参数

    rowgroup_id

    integer unsigned

    行组唯一标识。

    输出参数

    xid

    xid

    操作该数据的事务id。

    输出参数

    ctid

    cstring

    该数据在页面上的位置。

    输出参数

    flag

    smallint unsigned

    二进制标记位,每一数位表示TMU记录的不同操作属性。其中:

    • 第4位为1时,表示该记录是一条更新操作。
    • 第3位为1时,表示该记录是一条删除操作。
    • 第2位为1时,表示该记录是一条插入操作。
    示例:查询gs_htap_tmu_data系统函数。
    gaussdb=# select * from gs_htap_tmu_data(16796,0);
    ERROR:  Query failed due to ENABLE_HTAP is not enabled.
  • gs_htap_tmu_chunk_meta(rel_oid oid, rowgroup_id integer)

    描述:查看实时事务单元TMU元数据信息。当rowgroup_id为0时,返回所有行组中的实时事务单元TMU数据信息;当rowgroup_id非0时,返回表中指定行组中的实时事务单元TMU数据信息。

    返回值类型:record

    备注:必须是系统管理员或运维管理员才能执行此函数。

    表2 gs_htap_tmu_chunk_meta参数说明

    参数类型

    参数名

    类型

    描述

    输入参数

    rel_oid

    oid

    行存表oid信息。

    输入参数

    rowgroup_id

    integer unsigned

    行组唯一标识。

    输出参数

    rel_oid

    oid

    行存表oid信息。

    输出参数

    rowgroup_id

    integer unsigned

    行组唯一标识。

    输出参数

    status

    smallint unsigned

    表示TMU的状态。

    • 1表示TMU没有被清理过。
    • 2表示TMU被清理过。

    输出参数

    row_count

    integer unsigned

    数据行数。

    输出参数

    buffer_count

    integer unsigned

    包含的buffer个数。

    输出参数

    mem_usage

    bigint

    申请内存大小。

    输出参数

    inprogress

    cstring

    表示插入TMU数据的事务处于活跃状态的占比。

    输出参数

    completed

    cstring

    表示插入TMU数据的事务处于提交或回滚状态的占比。

    示例:查询gs_htap_tmu_chunk_meta系统函数。
    gaussdb=# select * from gs_htap_tmu_chunk_meta(16796,0);
    ERROR:  Query failed due to ENABLE_HTAP is not enabled.
  • gs_imcv_bgworker_status()

    描述:显示执行IMCV表重建的bgworker的状态信息。

    返回值类型:record

    备注:必须是系统管理员或运维管理员才能执行此函数。

    表3 gs_imcv_bgworker_status参数说明

    参数类型

    参数名

    类型

    描述

    输出参数

    worker_pid

    bigint

    线程号。

    输出参数

    relation_id

    oid

    正在处理的IMCV表的oid。

    输出参数

    worker_status

    cstring

    表示idle(准备)、running(进行中)、finished(完成)三种线程工作状态。

    输出参数

    start_time

    timestamp with time zone

    重建开始的时间戳。

    示例:查询gs_imcv_bgworker_status系统函数。
    gaussdb=# select * from gs_imcv_bgworker_status();
    ERROR:  Query failed due to ENABLE_HTAP is not enabled.
  • gs_imcv_flush(reloid oid)

    描述:对数据库中指定的IMCV表立即进行一次重建,并显示重建的结果。重建过程将刷新IMCV表,移除旧数据并同步当前表的非活跃数据。

    返回值类型:text

    备注:必须是系统管理员或运维管理员才能执行此函数。

    当IMCV表内的数据足够新鲜时,可能会跳过重建。本函数对OLTP业务有一定影响,仅作为运维接口使用,且不建议频繁执行。

    表4 gs_imcv_flush参数说明

    参数类型

    参数名

    类型

    描述

    输入参数

    reloid

    oid

    行存表oid。

    输出参数

    output

    text

    返回本次重建的结果。显示行组重建成功的数量以及跳过重建的数量。

    示例:查询gs_imcv_flush系统函数。
    gaussdb=# select * from gs_imcv_flush(16796);
    ERROR:  Manual row group rebuilding failed due to ENABLE_HTAP is not enabled.
  • gs_imcv_taskbuffer_view()

    描述:gs_imcv_taskbuffer_view显示HTAP业务中重建任务队列使用情况,入参为空。

    返回值类型:record

    备注:必须是系统管理员或运维管理员才能执行此函数。

    表5 gs_imcv_taskbuffer_view参数说明

    参数类型

    参数名

    类型

    描述

    输出参数

    buffer_is_empty

    boolean

    任务队列是否为空。默认值为t。

    输出参数

    buffer_is_full

    boolean

    任务队列是否存满。默认值为f。

    输出参数

    buffer_used_space

    integer

    任务已使用空间。默认值为0。

    输出参数

    buffer_free_space

    integer

    任务剩余空间。默认值为999。

    示例:查询gs_imcv_taskbuffer_view系统函数。
    gaussdb=# select * from gs_imcv_taskbuffer_view();
    ERROR:  Query failed due to ENABLE_HTAP is not enabled.
  • gs_imcu_meta(rel_name)

    描述:gs_imcu_meta用于显示指定rel_name的IMCV表下的IMCU元信息。

    返回值类型:record

    表6 gs_imcu_meta参数列表

    参数类型

    参数

    类型

    描述

    输入参数

    relname

    text

    IMCV表名。

    输出参数

    reloid

    oid

    表id。

    输出参数

    relname

    text

    表名。

    输出参数

    imcu_xmin

    xid

    预留,暂不使用。

    输出参数

    imcu_id

    integer

    IMCU id。

    输出参数

    row_count

    integer

    IMCU行数。

    输出参数

    imcu_size

    integer

    IMCU大小,单位字节。

    输出参数

    imcu_mode

    integer

    IMCU加载列数据特征:

    • 普通。
    • 全部为空。
    • 相同值。
    • 无最大最小值。
    • 有空行。

    输出参数

    imcu_pointer

    bigint

    预留,暂不使用。

    输出参数

    magic

    integer

    IMCU校验magic。

    输出参数

    attnum

    smallint

    IMCU加载列对应的attnum。

    示例:

    gaussdb=# SELECT * FROM gs_imcu_meta('test2');
     reloid | relname | imcu_xmin | imcu_id | row_count | imcu_size | imcu_mode | imcu_pointer | magic | attnum 
    --------+---------+-----------+---------+-----------+-----------+-----------+--------------+-------+--------
    (0 rows)

  • gs_imcv_status()

    描述:gs_imcv_status函数用于显示当前所有IMCV表的状态信息。

    返回值类型:record

    表7 gs_imcv_status参数列表

    参数

    参数

    类型

    描述

    输出参数

    reloid

    oid

    表id。

    输出参数

    relname

    name

    表名。

    输出参数

    dbname

    name

    数据库名。

    输出参数

    username

    name

    用户名。

    输出参数

    parentoid

    oid

    父表id。

    输出参数

    imcvstatus

    char

    IMCV表状态:

    • 'I': POPULATE_STAT_INIT初始化。
    • 'L': POPULATE_STAT_LOAD_START开始加载。
    • 'M': POPULATE_STAT_LOAD_META_DONE加载元数据。
    • 'F': POPULATE_STAT_LOAD_FINISH加载完成。
    • 'D': POPULATE_STAT_DROP已删除。
    • 'E': POPULATE_STAT_ERROR异常。

    输出参数

    imcvnattr

    smallint

    加载列数量。

    输出参数

    imcvkey

    int2vector

    加载的列数组。

    输出参数

    priority

    smallint

    加载优先级。

    输出参数

    rowgroup_num

    integer

    行组数。

    输出参数

    cu_num_in_mem

    integer

    内存中的IMCU数量。

    输出参数

    cu_mem_size

    bigint

    IMCU占用的内存大小,单位字节。

    输出参数

    cu_num_in_disk

    integer

    暂不支持,值为0。

    输出参数

    cu_disk_size

    bigint

    暂不支持,值为0。

    示例:

    gaussdb=# SELECT * FROM gs_imcv_status();
     reloid | relname |  dbname  | username | parentoid | imcvstatus | imcvnattr |  imcvkey  | priority | rowgroup_num | cu_num_in_mem | cu_mem_size | cu_num_in_disk | cu_disk_size 
    --------+---------+----------+----------+-----------+------------+-----------+-----------+----------+--------------+---------------+-------------+----------------+--------------
    (0 row)

  • gs_imcu_slot_status()

    描述:gs_imcu_slot_status记录了IMCV表下的IMCU对应的缓存slot信息。

    返回值类型:record

    表8 gs_imcu_slot_status参数列表

    参数类型

    参数

    类型

    描述

    输出参数

    reloid

    oid

    表id。

    输出参数

    cu_id

    integer

    IMCU id。

    输出参数

    col_id

    integer

    IMCU 所属列id。

    输出参数

    slot_id

    integer

    缓存区slot id。

    输出参数

    block_size

    integer

    IMCU内存大小,单位字节。

    输出参数

    flag

    char

    缓存块标志位。

    示例:

    gaussdb=# SELECT * FROM gs_imcu_slot_status();
     reloid | cu_id | col_id | slot_id | block_size | flag 
    --------+-------+--------+---------+------------+------
    (0 rows)
support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-1732.html