首批通过分布式安全可靠测评,为关键业务系统打造
创建宏块级冷热存储策略
更新时间:2026-05-01 11:42:32
本文将向您介绍如何使用 SQL 语句在不是分区表的情况下,手动指定一段时间内数据为热点数据,即创建宏块级冷热存储策略。
使用方法
创建宏块级冷热存储策略需要在 STORAGE_CACHE_POLICY 语法中指定 GRANULARITY = "block"。详细语法信息,参见 创建表级冷热存储策略。
当前创建宏块级冷热存储策略可以使用 系统时间列方案 和 自定义时间列方案。
系统时间列方案
注意事项
在进行大规模结构性变更后(如 DDL/旁路导入/建索引等场景),可能出现短期内热点判定过多导致真正的热点被挤占情况。
功能点
使用系统内部时间列来判断数据的冷热存储,实际上是根据数据真正写入时间做判断。该方式适合无法提供业务时间列、或需要 “开箱即用” 的场景。
示例
创建表 tbl1,使用系统时间列创建宏块级冷热存储策略,即 STORAGE_CACHE_POLICY 中无需指定 BOUNDARY_COLUMN。
obclient> CREATE TABLE tbl1 (
col1 INT,
col2 DATE NOT NULL,
col3 VARCHAR(100))
STORAGE_CACHE_POLICY (
HOT_RETENTION = 6 DAY,
GRANULARITY = 'block');
自定义时间列方案
注意事项
若自定义时间列无法用于有效过滤,系统会无法进行预热,热点判定精度下降。
功能点
使用用户指定的业务时间列判断热点有效期。
使用建议
适合对热点范围控制更精细、且业务时间列稳定可靠的场景。
示例
创建表 tbl2,使用自定义时间列 col2 创建宏块级冷热存储策略。
obclient> CREATE TABLE tbl2 (
col1 INT,
col2 DATE NOT NULL,
col3 VARCHAR(100))
STORAGE_CACHE_POLICY (
BOUNDARY_COLUMN = 'col2',
HOT_RETENTION = 6 DAY,
GRANULARITY = 'block');
其它正交场景注意事项
- 热点缓存数据不包含在备份/恢复流程中,恢复后热点会按当前策略重新建立。如不希望恢复期间受到策略影响,可通过租户配置项 enable_manual_storage_cache_policy 关闭人工策略。
- 更新主表数据时,索引的内部时间列不会同步变化;如需精确控制索引冷热,建议手动为索引单独设置策略。