DBE_ILM_ADMIN
接口介绍
服务于ILM策略实施,实现ADO的后台调度以及各个限流参数的控制。DBE_ILM_ADMIN支持的接口请参见表1。
当并发量较大时,执行DBE_ILM_ADMIN.DISABLE_ILM或DBE_ILM_ADMIN.ENABLE_ILM可能会提示资源繁忙,稍后重试即可。提示内容为“Resources are busy, please try again later.”。
- DBE_ILM_ADMIN.CUSTOMIZE_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)