一、操作场景
这篇说说手动归档冷数据的常用 SQL 操作。功能架构与原理请参见 冷数据归档。
二、前提条件
手动归档冷数据前,请确认目标实例已开启数据归档功能。开启方式请参见 开启冷数据归档。
三、建表时指定表级冷热属性
在建表时通过表选项 STORAGE_TIER 指定整张表的存储层级。
— 整张表创建为冷表CREATE TABLE archive_log ( id BIGINT PRIMARY KEY, log_time DATETIME, payload TEXT) STORAGE_TIER = OBJECT_STORAGE;– 显式声明使用本地存储(与不指定等价)CREATE TABLE hot_order ( id BIGINT PRIMARY KEY, amount DECIMAL(10,2)) STORAGE_TIER = LOCAL_STORAGE;
STORAGE_TIER 的可选值如下:
| 取值 | 含义 |
| AUTO | 由系统按默认策略选择,当前等同于 LOCAL_STORAGE |
| LOCAL_STORAGE | 数据存放在热数据存储层(DataDB),使用本地存储 |
| OBJECT_STORAGE | 数据存放在冷数据存储层(CacheDB + DurableDB),使用对象存储 |
四、建表时为分区指定冷热属性
对于按时间或业务键分区的表,可以为单个分区独立指定存储层级,实现"近期分区为热、历史分区为冷"。
CREATE TABLE order_history ( id BIGINT, order_date DATE, amount DECIMAL(10,2), PRIMARY KEY (id, order_date))PARTITION BY RANGE COLUMNS (order_date) ( PARTITION p_2023 VALUES LESS THAN ('2024-01-01') STORAGE_TIER = OBJECT_STORAGE, PARTITION p_2024 VALUES LESS THAN ('2025-01-01') STORAGE_TIER = OBJECT_STORAGE, PARTITION p_2025 VALUES LESS THAN ('2026-01-01') STORAGE_TIER = LOCAL_STORAGE);
五、将已有表转为冷表
通过 ALTER TABLE 对已存在的表整体进行转冷。
ALTER TABLE archive_log STORAGE_TIER = OBJECT_STORAGE;
执行后,系统会在后台异步推进转冷任务,期间应用可以继续访问该表。
六、将已有分区转为冷分区
通过 ALTER TABLE … MODIFY PARTITION 对单个或多个分区独立转冷。
ALTER TABLE order_history MODIFY PARTITION (p_2024) STORAGE_TIER = OBJECT_STORAGE;
七、通过控制台查看归档列表
1. 登录 TDSQL Boundless 控制台,在实例列表中单击目标实例 ID,进入实例详情页。
2. 选择数据归档页签,在基本信息区域可查看订阅状态、所在地区、存储用量、开启时间和计费方式。
3. 在数据归档列表中可查看各归档对象的明细,列说明如下:
| 列名 | 说明 |
| 库名 | 归档对象所属的数据库名称。 |
| 表名 | 归档对象所属的表名称。 |
| 分区名 | 归档对象所属的分区名称。整表归档时显示为 -。 |
| 数据量大小 | 该归档对象的数据量。 |
| 状态 | 归档状态。pending 表示等待归档,已归档 表示归档已完成。 |
八、查看转冷任务进度
系统提供 information_schema.TDSTORE_TIERING_COLD_RG_JOB_PROGRESS 视图,用于实时查看每个数据分片的转冷任务进度。
SELECT node_name, rep_group_id, stage, uploaded_file_num, total_file_num, progress_pct, elapsed_time_ms, err_msgFROM information_schema.TDSTORE_TIERING_COLD_RG_JOB_PROGRESSORDER BY rep_group_id;
完整字段说明请参见 INFORMATION_SCHEMA.TDSTORE_TIERING_COLD_RG_JOB_PROGRESS。
当 stage 为 Done 且 err_msg 为空时,表示该分片转冷成功。
九、查看冷热数据用量分布
通过 information_schema.TDSTORE_TIERED_STORAGE_USAGE 视图可以观察冷表在本地缓冲层与对象存储上的数据量分布,便于评估冷却效果。
— 查看每个冷表索引/分区的近似数据量SELECT TABLE_SCHEMA, TABLE_NAME, PARTITION_NAME, INDEX_NAME, CACHE_DB_SIZE, DURABLE_DB_SIZE, TOTAL_SIZEFROM information_schema.TDSTORE_TIERED_STORAGE_USAGE;– 按表汇总SELECT TABLE_SCHEMA, TABLE_NAME, SUM(CACHE_DB_SIZE) AS cache_total, SUM(DURABLE_DB_SIZE) AS durable_totalFROM information_schema.TDSTORE_TIERED_STORAGE_USAGEGROUP BY TABLE_SCHEMA, TABLE_NAME;
完整字段说明请参见 INFORMATION_SCHEMA.TDSTORE_TIERED_STORAGE_USAGE。
注意:说明:
注意:该视图由参数 tdstore_tiered_storage_usage_view_mode 控制。默认值 1 使用低 I/O 的聚合模式;设为 2 时返回实时数据,开销更高;设为 0 时禁用该视图。
十、相关文档
·基于规则归档时间分区数据
·常见问题 > 冷数据归档
·自研内核 > 功能类特性 > 冷数据归档