功能
TDSQL Boundless 在分级存储(Tiered Storage)特性下,将冷表(cold table)的数据划分到两个存储层:
本地缓存层
cacheDB:承载近期写入与热数据缓存,位于本地节点磁盘。远端持久层
durableDB:承载已上传的冷数据,位于对象存储。系统视图
information_schema.TDSTORE_TIERED_STORAGE_USAGE 用于查看冷表在 cacheDB 与 durableDB 中的容量使用情况,按 (TINDEX_ID, REPLICATION_GROUP_ID) 粒度展示每个表/索引/分区的近似数据量。在任意 SQL 节点查询即可获取全集群冷表的容量分布,常用于容量规划、上传进度评估和资源调优。说明:
本视图仅展示已进入分级存储的冷表数据,热表(普通表)不在视图范围内。
字段说明
列名 | 数据类型 | 是否可空 | 说明 |
TINDEX_ID | BIGINT UNSIGNED | 否 | TDStore 内部数据对象 ID,唯一标识一个表、索引或分区。 |
REPLICATION_GROUP_ID | BIGINT UNSIGNED | 否 | 数据所在复制组(Replication Group)的 ID。同一对象可分布在多个复制组,每个复制组独立展示一行。 |
TABLE_SCHEMA | VARCHAR(64) | 是 | 数据所属的库名(schema)。 |
TABLE_NAME | VARCHAR(64) | 是 | 数据所属的主表名。分区表也始终展示主表名。 |
PARTITION_NAME | VARCHAR(64) | 是 | 分区名。非分区表此列为 NULL。 |
INDEX_NAME | VARCHAR(64) | 是 | 索引名。主键统一展示为 PRIMARY。 |
INDEX_TYPE | VARCHAR(64) | 是 | 索引类型,可选值: PRIMARY、UNIQUE、MULTIPLE、FULLTEXT、SPATIAL。 |
CACHE_DB_SIZE | BIGINT UNSIGNED | 否 | 该索引/分区在 cacheDB 中的近似数据量,单位为字节。 |
DURABLE_DB_SIZE | BIGINT UNSIGNED | 否 | 该索引/分区在 durableDB 中的近似数据量,单位为字节。 |
TOTAL_SIZE | BIGINT UNSIGNED | 否 | 总数据量,等于 CACHE_DB_SIZE + DURABLE_DB_SIZE。 |
相关参数
视图的数据获取方式由系统变量
tdstore_tiered_storage_usage_view_mode 控制:参数名 | 作用域 | 默认值 | 取值范围 | 说明 |
tdstore_tiered_storage_usage_view_mode | GLOBAL | 1 | 0、1、2 | 控制视图的数据来源模式: 0:关闭视图功能,查询时返回错误。1:通过 MC(Meta Cluster)聚合心跳数据,I/O 开销小,推荐生产环境使用。2:实时向 TDStore 节点发起 RPC 查询,数据更实时但开销更高。 |
使用限制
限制项 | 说明 |
数据范围 | 仅展示已进入分级存储的冷表数据。普通表(热表)不在视图范围内。 |
权限要求 | 查询本视图需具备访问 information_schema 的权限。 |
数据精度 | 各 SIZE 列均为基于元数据的近似估算值,主要用于资源用量观测,不适合作为精确计费依据。算术关系 CACHE_DB_SIZE + DURABLE_DB_SIZE = TOTAL_SIZE 始终精确成立。 |
DDL 并发 | 查询期间若并发 DROP TABLE 或 DROP INDEX,被删除对象将从结果中跳过,不会导致查询失败。 |
查询频率 | 视图属于低频运维接口,建议在容量评估、巡检等场景按需查询,不宜在业务高频路径中持续轮询。 |
版本要求 | TDSQL Boundless V21.6.3.0及以上版本。 |
示例
查看视图结构
DESC information_schema.TDSTORE_TIERED_STORAGE_USAGE;
返回结果:
+----------------------+-----------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+----------------------+-----------------+------+-----+---------+-------+| TINDEX_ID | bigint unsigned | NO | | NULL | || REPLICATION_GROUP_ID | bigint unsigned | NO | | NULL | || TABLE_SCHEMA | varchar(64) | YES | | NULL | || TABLE_NAME | varchar(64) | YES | | NULL | || PARTITION_NAME | varchar(64) | YES | | NULL | || INDEX_NAME | varchar(64) | YES | | NULL | || INDEX_TYPE | varchar(64) | YES | | NULL | || CACHE_DB_SIZE | bigint unsigned | NO | | NULL | || DURABLE_DB_SIZE | bigint unsigned | NO | | NULL | || TOTAL_SIZE | bigint unsigned | NO | | NULL | |+----------------------+-----------------+------+-----+---------+-------+
查询非分区冷表的容量分布(含二级索引)
SELECT TABLE_SCHEMA, TABLE_NAME, PARTITION_NAME, INDEX_NAME, INDEX_TYPE,CACHE_DB_SIZE, DURABLE_DB_SIZE, TOTAL_SIZEFROM information_schema.TDSTORE_TIERED_STORAGE_USAGEWHERE TABLE_SCHEMA = 'cold_db' AND TABLE_NAME = 't_cold_data'ORDER BY INDEX_NAME;
返回结果:
+--------------+-------------+----------------+------------+------------+---------------+-----------------+------------+| TABLE_SCHEMA | TABLE_NAME | PARTITION_NAME | INDEX_NAME | INDEX_TYPE | CACHE_DB_SIZE | DURABLE_DB_SIZE | TOTAL_SIZE |+--------------+-------------+----------------+------------+------------+---------------+-----------------+------------+| cold_db | t_cold_data | NULL | idx_val | MULTIPLE | 1024 | 8192 | 9216 || cold_db | t_cold_data | NULL | PRIMARY | PRIMARY | 4096 | 32768 | 36864 |+--------------+-------------+----------------+------------+------------+---------------+-----------------+------------+
查询分区冷表的容量分布
SELECT TABLE_NAME, PARTITION_NAME, INDEX_NAME, INDEX_TYPE,CACHE_DB_SIZE, DURABLE_DB_SIZE, TOTAL_SIZEFROM information_schema.TDSTORE_TIERED_STORAGE_USAGEWHERE TABLE_SCHEMA = 'cold_db' AND TABLE_NAME = 't_cold_part'ORDER BY PARTITION_NAME, INDEX_NAME;
返回结果(分区表的每个分区独立展示一行):
+-------------+----------------+------------+------------+---------------+-----------------+------------+| TABLE_NAME | PARTITION_NAME | INDEX_NAME | INDEX_TYPE | CACHE_DB_SIZE | DURABLE_DB_SIZE | TOTAL_SIZE |+-------------+----------------+------------+------------+---------------+-----------------+------------+| t_cold_part | p0 | PRIMARY | PRIMARY | 2048 | 16384 | 18432 || t_cold_part | p1 | PRIMARY | PRIMARY | 2048 | 16384 | 18432 || t_cold_part | p2 | PRIMARY | PRIMARY | 2048 | 16384 | 18432 |+-------------+----------------+------------+------------+---------------+-----------------+------------+
按表汇总冷数据容量
SELECT TABLE_SCHEMA,TABLE_NAME,SUM(CACHE_DB_SIZE) AS CACHE_TOTAL,SUM(DURABLE_DB_SIZE) AS DURABLE_TOTAL,SUM(TOTAL_SIZE) AS GRAND_TOTALFROM information_schema.TDSTORE_TIERED_STORAGE_USAGEGROUP BY TABLE_SCHEMA, TABLE_NAMEORDER BY GRAND_TOTAL DESC;
识别本地缓存层占比过高的索引
当某个索引在
cacheDB 中的占比明显高于 durableDB 时,说明仍有大量冷数据未上传,可结合上传任务进度排查。SELECT TABLE_SCHEMA, TABLE_NAME, PARTITION_NAME, INDEX_NAME,CACHE_DB_SIZE, DURABLE_DB_SIZE,ROUND(CACHE_DB_SIZE * 100.0 / NULLIF(TOTAL_SIZE, 0), 2) AS CACHE_PCTFROM information_schema.TDSTORE_TIERED_STORAGE_USAGEWHERE TOTAL_SIZE > 0ORDER BY CACHE_PCT DESCLIMIT 10;
切换视图数据来源模式
默认模式
1 通过 MC 聚合数据,I/O 开销小。当需要更实时的数据时,可临时切换至模式 2:-- 切换为实时 RPC 模式SET GLOBAL tdstore_tiered_storage_usage_view_mode = 2;-- 执行查询SELECT * FROM information_schema.TDSTORE_TIERED_STORAGE_USAGE LIMIT 10;-- 查询完成后切回默认模式SET GLOBAL tdstore_tiered_storage_usage_view_mode = 1;
注意:
当
tdstore_tiered_storage_usage_view_mode 设置为 0 时,本视图查询将直接返回错误,需重新设置为 1 或 2 才能正常使用。