功能
INFORMATION_SCHEMA.TDSTORE_LSM_SST_INFO 用于展示集群中所有 hybrid 节点中,每个 SST 文件的明细信息,包括所属 ColumnFamily 和层级、文件大小、key 范围、序列号范围、记录数、是否正在 Compaction 等,用于定位具体的小文件、异常文件或排查 Compaction 堆积问题。适用版本
TDSQL Boundless V21.6.4.0及以上版本。
字段说明
字段名 | 类型 | 描述 |
NODE_NAME | VARCHAR(513) | SQLEngine 节点的名称。 |
CF_NAME | VARCHAR(193) | ColumnFamily 的名称。 |
CF_ID | BIGINT UNSIGNED | ColumnFamily 的 ID。 |
LEVEL | BIGINT UNSIGNED | 该 SST 文件所在的 LSM-tree 层级。 |
FILE_NUMBER | BIGINT UNSIGNED | SST 文件的编号。 |
FILE_NAME | VARCHAR(1024) | SST 文件名。 |
FILE_PATH | VARCHAR(1024) | SST 文件的完整路径。 |
SIZE_BYTES | BIGINT UNSIGNED | SST 文件的大小,单位字节。 |
COMPRESSION_TYPE | VARCHAR(193) | SST 文件的压缩类型。 |
SMALLEST_KEY_HEX | VARCHAR(1024) | SST 文件中最小 key 的十六进制表示。 |
LARGEST_KEY_HEX | VARCHAR(1024) | SST 文件中最大 key 的十六进制表示。 |
SMALLEST_SEQNO | BIGINT UNSIGNED | SST 文件中最小的内部序列号(sequence number)。 |
LARGEST_SEQNO | BIGINT UNSIGNED | SST 文件中最大的内部序列号(sequence number)。 |
NUM_ENTRIES | BIGINT UNSIGNED | SST 文件中的记录条数(含删除标记)。 |
NUM_DELETIONS | BIGINT UNSIGNED | SST 文件中删除标记的数量。 |
NUM_READS_SAMPLED | BIGINT UNSIGNED | SST 文件被采样读取的次数,用于评估文件的读热度。 |
BEING_COMPACTED | BIGINT UNSIGNED | 该 SST 文件是否正在被 Compaction, 1 表示是,0 表示否。 |
FILE_CREATION_TIME | TIMESTAMP | SST 文件的创建时间。 |
OLDEST_ANCESTER_TIME | TIMESTAMP | SST 文件最早祖先文件的创建时间,用于追溯数据的原始写入时间。 |
TEMPERATURE | BIGINT | SST 文件的冷热温度标记。 |
使用说明
查询时可通过
WHERE CF_ID = xxx 或 WHERE LEVEL = xxx 等值条件进行下推过滤,仅拉取指定 ColumnFamily 或指定层级的 SST 明细,减少 RPC 数据量。目前仅支持 CF_ID、LEVEL 两个字段的等值条件下推,其余条件(如 SIZE_BYTES > xxx 范围查询)仍由 SQL 层过滤。由于单个 ColumnFamily 可能包含大量 SST 文件,本视图针对每个节点的单次返回行数设置了上限,由系统变量
tdstore_lsm_sst_info_max_rows 控制(默认10000,0表示不限制)。当某个节点的 SST 文件数量超过该上限时,查询会报错并提示增大该变量或补充 CF_ID/LEVEL 过滤条件缩小返回范围。示例
查询指定 ColumnFamily(CF_ID = 20)第0层的 SST 文件明细。
tdsql>select * from information_schema.tdstore_lsm_sst_infowhere cf_id = 20 and level = 0 limit 1\\G*************************** 1. row ***************************NODE_NAME: node-1-001CF_NAME: user_region_20CF_ID: 20LEVEL: 0FILE_NUMBER: 128FILE_NAME: 000128.sstFILE_PATH: /data/tdstore/data_db/000128.sstSIZE_BYTES: 6291456COMPRESSION_TYPE: kLZ4CompressionSMALLEST_KEY_HEX: 0000274A80000001LARGEST_KEY_HEX: 0000274A800003E8SMALLEST_SEQNO: 100234LARGEST_SEQNO: 100897NUM_ENTRIES: 1000NUM_DELETIONS: 12NUM_READS_SAMPLED: 3BEING_COMPACTED: 0FILE_CREATION_TIME: 2026-07-20 10:23:11OLDEST_ANCESTER_TIME: 2026-07-20 10:23:11TEMPERATURE: 01 row in set (0.01 sec)
查询小文件(小于8MB)的数量,用于评估某个 ColumnFamily 的小文件治理需求。
tdsql>select cf_id, count(*) as small_file_countfrom information_schema.tdstore_lsm_sst_infowhere cf_id = 20 and size_bytes < 8388608group by cf_id;+-------+-------------------+| CF_ID | small_file_count |+-------+-------------------+| 20 | 47 |+-------+-------------------+1 row in set (0.02 sec)
注意:
当查询未指定
CF_ID 或 LEVEL 等值条件时,会拉取所有节点、所有层级的 SST 文件明细,在 SST 文件数量较多的集群中可能造成较大的 RPC 开销和响应延迟,建议尽量补充过滤条件缩小查询范围。