手动归档冷数据

最近更新时间:2026-07-01 15:14:58

我的收藏

操作场景

数据归档开启后,冷热分层通过标准 SQL 语法进行控制。您可以根据业务需要,将整张表或指定分区精确地指定为冷存储或热存储,并在转冷后查看任务进度与冷热数据用量分布。
本文介绍手动归档冷数据的常用 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_msg
FROM information_schema.TDSTORE_TIERING_COLD_RG_JOB_PROGRESS
ORDER BY rep_group_id;
stageDoneerr_msg 为空时,表示该分片转冷成功。

查看冷热数据用量分布

通过 information_schema.TDSTORE_TIERED_STORAGE_USAGE 视图可以观察冷表在本地缓冲层与对象存储上的数据量分布,便于评估冷却效果。
-- 查看每个冷表索引/分区的近似数据量
SELECT
TABLE_SCHEMA,
TABLE_NAME,
PARTITION_NAME,
INDEX_NAME,
CACHE_DB_SIZE,
DURABLE_DB_SIZE,
TOTAL_SIZE
FROM information_schema.TDSTORE_TIERED_STORAGE_USAGE;

-- 按表汇总
SELECT
TABLE_SCHEMA,
TABLE_NAME,
SUM(CACHE_DB_SIZE) AS cache_total,
SUM(DURABLE_DB_SIZE) AS durable_total
FROM information_schema.TDSTORE_TIERED_STORAGE_USAGE
GROUP BY TABLE_SCHEMA, TABLE_NAME;
说明:
该视图由参数 tdstore_tiered_storage_usage_view_mode 控制。默认值 1 使用低 I/O 的聚合模式;设为 2 时返回实时数据,开销更高;设为 0 时禁用该视图。

相关操作