TDSQL Boundless TDSTORE_TIERED_STORAGE_USAGE

TDSQL Boundless 在分级存储(Tiered Storage)特性下,将冷表(cold table)的数据划分到两个存储层。

相关产品
TDSQL Boundless 产品页,含版本规格、价格与购买入口。

一、功能

·本地缓存层 cacheDB:承载近期写入与热数据缓存,位于本地节点磁盘。

·远端持久层 durableDB:承载已上传的冷数据,位于对象存储。

系统视图 information_schema.TDSTORE_TIERED_STORAGE_USAGE 用于查看冷表在 cacheDB 与 durableDB 中的容量使用情况,按 (TINDEX_ID, REPLICATION_GROUP_ID) 粒度展示每个表/索引/分区的近似数据量。在任意 SQL 节点查询即可获取全集群冷表的容量分布,常用于容量规划、上传进度评估和资源调优。

注意:说明:

注意:本视图仅展示已进入分级存储的冷表数据,热表(普通表)不在视图范围内。

二、支持版本

适用于 TDSQL Boundless V21.6.3.0 及以上版本。

三、字段说明

列名 数据类型 是否可空 说明
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 才能正常使用。

赞 (0)
上一篇 4天前
下一篇 4天前