更新时间:2026-10-21 GMT+08:00
分享

DBE_ILM_ADMIN

接口介绍

服务于ILM策略实施,实现ADO的后台调度以及各个限流参数的控制。DBE_ILM_ADMIN支持的接口请参见表1。

表1 DBE_ILM_ADMIN

接口名称

描述

DBE_ILM_ADMIN.CUSTOMIZE_ILM

根据输入参数定制ILM策略属性。

DBE_ILM_ADMIN.DISABLE_ILM

关闭后台调度。

DBE_ILM_ADMIN.ENABLE_ILM

开启后台调度。

DBE_ILM_ADMIN.CREATE_ILM_DB_POLICY

创建库级压缩策略。

DBE_ILM_ADMIN.DELETE_ILM_DB_POLICY

删除库级压缩策略。

当并发量较大时,执行DBE_ILM_ADMIN.DISABLE_ILM或DBE_ILM_ADMIN.ENABLE_ILM可能会提示资源繁忙,稍后重试即可。提示内容为“Resources are busy, please try again later.”。

  • DBE_ILM_ADMIN.CUSTOMIZE_ILM

    根据输入参数定制ILM策略属性。

    DBE_ILM_ADMIN.CUSTOMIZE_ILM原型为:

    DBE_ILM_ADMIN.CUSTOMIZE_ILM(
    PARAM    IN    NUMBER, 
    VAL      IN    NUMBER);
    表2 DBE_ILM_ADMIN.CUSTOMIZE_ILM接口参数说明

    参数

    描述

    PARAM

    参数序号。

    VAL

    参数取值。

    由于兼容性影响,在MYSQL或M-Compatibility兼容模式下,若调用DBE_ILM_ADMIN.CUSTOMIZE_ILM()时传入的VAL值为非数字的字符,例如DBE_ILM_ADMIN.CUSTOMIZE_ILM(13, '*'),会默认将传入的VAL值赋值为0。

    表3 DBE_ILM_ADMIN.CUSTOMIZE_ILM接口参数范围

    参数序号

    参数值

    描述

    1

    EXECUTION_INTERVAL

    ADO Task的执行频率,单位分钟,默认值15。取值范围为大于等于1小于等于2147483647的整数或浮点数,作用时向下取整。

    2

    RETENTION_TIME

    ADO相关历史的保留时长,单位天,默认值30。取值范围为大于等于1小于等于2147483647的整数或浮点数,作用时向下取整。

    7

    ENABLE

    后台调度的状态。该参数不支持使用DBE_ILM_ADMIN.CUSTOMIZE_ILM修改,应使用DBE_ILM_ADMIN.DISABLE_ILM和DBE_ILM_ADMIN.ENABLE_ILM修改。

    11

    POLICY_TIME

    控制ADO的条件单位是天或者秒,秒仅用来做测试用。取值为:

    • 0:ILM_POLICY_IN_DAYS(默认值)。
    • 1:ILM_POLICY_IN_SECONDS。

    12

    ABS_JOBLIMIT

    控制一次ADO Task最多生成ADO Job的数量。取值范围为大于等于0小于等于2147483647的整数或浮点数,作用时向下取整。

    13

    JOB_SIZELIMIT

    控制单个ADO Job可以处理的最大字节数,单位兆。取值范围为大于等于0小于等于2147483647的整数或浮点数,作用时向下取整。当JOB_SIZELIMIT为0时,手动执行压缩任务会报warning且不做压缩处理,自动调度后台任务也不做压缩处理。

    14

    WIND_DURATION

    维护窗口持续时长,单位分钟,默认值240(4小时)。取值范围为大于等于0小于1440(24小时)的整数。

    15

    BLOCK_LIMITS

    控制实例级的行存压缩速率上限,默认值40,单位是block/ms(表示每毫秒最多压缩多少个block)。取值范围是0到10000(0表示不限制)。跨页透明压缩不支持此参数。

    16

    ENABLE_META_COMPRESSION

    是否开启header压缩,默认值0。取值范围为0(关闭)和1(开启)。跨页透明压缩不支持此参数。

    说明:

    设置此参数为1时,对于单行数据较短的表,压缩率会有一定提升,但是访问压缩行的性能会有较大幅度的下降。若数据库多是单行数据较长的表,不建议开启此参数。

    17

    SAMPLE_MIN

    常量编码和等值编码采样步长最小值,默认值10。取值范围[1, 100],支持小数输入,小数会自动向下取整。跨页透明压缩不支持此参数。

    18

    SAMPLE_MAX

    常量编码和等值编码采样步长最大值,默认值10。取值范围[1, 100],支持小数输入,小数会自动向下取整。跨页透明压缩不支持此参数。

    19

    CONST_PRIO

    常量编码优先级,默认值40。取值范围[0, 100],100表示关闭常量编码,支持小数输入,小数会自动向下取整。跨页透明压缩不支持此参数。

    20

    CONST_THRESHOLD

    常量编码阈值,默认值90。取值范围[1, 100],表示一列常量值的占比超过该阈值时进行常量编码,支持小数输入,小数会自动向下取整。跨页透明压缩不支持此参数。

    21

    EQVALUE_PRIO

    等值编码优先级,默认值60。取值范围[0, 100],100表示关闭等值编码,支持小数输入,小数会自动向下取整。跨页透明压缩不支持此参数。

    22

    EQVALUE_THRESHOLD

    等值编码阈值,默认值80。取值范围[1, 100],表示两列数据的等值比例超过该阈值时进行等值编码,支持小数输入,小数会自动向下取整。跨页透明压缩不支持此参数。

    23

    ENABLE_DELTA_ENCODE_SWITCH

    差值编码开关,默认值1。取值范围[0, 1],0表示关闭,1表示开启,支持小数输入,小数会自动向下取整。跨页透明压缩不支持此参数。

    24

    LZ4_COMPRESSION_LEVEL

    lz4压缩等级,默认值0。取值范围[0, 16],支持小数输入,小数会自动向下取整。跨页透明压缩不支持此参数。

    25

    ENABLE_LZ4_PARTIAL_DECOMPRESSION

    部分解压开关,默认值1。取值范围[0, 1],0表示关闭,1表示开启,支持小数输入,小数会自动向下取整。跨页透明压缩不支持此参数。

    26

    INDEXJOB_SIZELIMIT

    控制索引压缩时单个ADO Job可以处理的最大字节数,单位兆,默认为1024。取值范围为大于等于0小于等于2147483647的整数或浮点数,作用时向下取整。当INDEXJOB_SIZELIMIT为0时,手动执行压缩任务会报warning且不做压缩处理,自动调度后台任务也不做压缩处理。

    27

    ENABLE_INDEX_COMPRESS

    索引压缩使能开关,0表示关闭,1表示打开,默认为0。

    示例:

    gaussdb=# CALL DBE_ILM_ADMIN.CUSTOMIZE_ILM(1, 15);
     customize_ilm 
    ---------------
    
    (1 row)
    gaussdb=# SELECT * FROM gs_adm_ilmparameters;
                   name               | value 
    ----------------------------------+-------
     EXECUTION_INTERVAL               |    15
     RETENTION_TIME                   |    30
     ENABLED                          |     1
     POLICY_TIME                      |     0
     ABS_JOBLIMIT                     |    10
     JOB_SIZELIMIT                    |  1024
     WIND_DURATION                    |   240
     BLOCK_LIMITS                     |    40
     ENABLE_META_COMPRESSION          |     0
     SAMPLE_MIN                       |    10
     SAMPLE_MAX                       |    10
     CONST_PRIO                       |    40
     CONST_THRESHOLD                  |    90
     EQVALUE_PRIO                     |    60
     EQVALUE_THRESHOLD                |    80
     ENABLE_DELTA_ENCODE_SWITCH       |     1
     LZ4_COMPRESSION_LEVEL            |     0
     ENABLE_LZ4_PARTIAL_DECOMPRESSION |     1
     INDEXJOB_SIZELIMIT               |  1024
     ENABLE_INDEX_COMPRESS            |     0 
    (20 rows)
  • DBE_ILM_ADMIN.DISABLE_ILM

    关闭后台调度。

    DBE_ILM_ADMIN.DISABLE_ILM原型为:

    CALL DBE_ILM_ADMIN.DISABLE_ILM();
  • DBE_ILM_ADMIN.ENABLE_ILM

    开启后台调度。

    DBE_ILM_ADMIN.ENABLE_ILM原型为:

    CALL DBE_ILM_ADMIN.ENABLE_ILM();

    后台调度生效需要先在数据库运维平台将GUC参数enable_ilm设置为on。

  • DBE_ILM_ADMIN.CREATE_ILM_DB_POLICY
    基于输入参数创建库级压缩策略,该策略将执行以下操作:
    • 自动覆盖存量表:为当前数据库中所有未绑定压缩策略的用户表附加此策略。
    • 新表默认继承:后续新建表若未显式声明压缩策略,将自动继承该库级策略定义。

    DBE_ILM_ADMIN.CREATE_ILM_DB_POLICY原型为:

    DBE_ILM_ADMIN.CREATE_ILM_DB_POLICY(
    DAYS IN INT,
    COMPRESSION_LEVEL IN TEXT DEFAULT 'MEDIUM');
    表4 DBE_ILM_ADMIN.CREATE_ILM_DB_POLICY接口参数说明

    参数

    描述

    DAYS

    压缩策略天数。

    COMPRESSION_LEVEL

    压缩策略级别。仅支持'HIGH' 和 'MEDIUM',默认值为 'MEDIUM'。

  • DBE_ILM_ADMIN.DELETE_ILM_DB_POLICY

    删除库级压缩策略及所有表上继承于库级压缩策略的压缩策略。

  • 库级压缩策略仅支持高级压缩。
  • 库级策略不支持表达式功能。
  • 在使用gs_dump导出库级策略定义时,需满足以下条件方可生效:必须执行全库导出操作且用户具备系统管理员权限。若上述条件未同时满足,则相关策略将以表、分区或子分区级别的独立策略形式导出,而非作为库级策略处理。
  • 多个不同事务内若调用DBE_ILM_ADMIN.CREATE_ILM_DB_POLICY、DBE_ILM_ADMIN.DELETE_ILM_DB_POLICY、DBE_ILM.EXECUTE_ILM等接口并发执行,先执行的事务若一直不提交,后执行的事务可能存在锁超时风险。
库级策略示例:
  • 创建一个策略时间为10天压缩策略:
    gaussdb=# CALL DBE_ILM_ADMIN.CREATE_ILM_DB_POLICY(10);
     create_ilm_db_policy 
    ----------------------
    
    (1 row)
  • 删除库级策略
    gaussdb=# CALL DBE_ILM_ADMIN.DELETE_ILM_DB_POLICY();
     delete_ilm_db_policy 
    ----------------------
    
    (1 row)
  • 创建一个策略时间为10天的high级别压缩策略:
    gaussdb=# CALL DBE_ILM_ADMIN.CREATE_ILM_DB_POLICY(10, 'high');
     create_ilm_db_policy 
    ----------------------
    
    (1 row)

相关文档