system.parts
在 ClickHouse 中,system.parts 是一个系统表,用于存储有关各个表分区的信息,包括表名、数据库名、分区键值、分区路径、数据范围等。以下是 system.parts 表的简化结构:
- table:表名
- database:数据库名
- partition:分区名称
- active:标识分区是否仍然活动
- marks:标记数
- rows:行数
- bytes_on_disk:该分区在磁盘上占用的字节数
- data_compressed_bytes:压缩后的数据占用的字节数
- total_rows:总行数
- modification_time:分区最后修改时间
- 其他列可能会提供更多关于分区属性和统计信息的细节
可以使用以下 SQL 查询来查看 system.parts 表的结构(列信息):
DESCRIBE system.parts;
这将返回有关 system.parts 表结构的详细信息,包括每个列的名称、数据类型和其他相关信息。
磁盘空间占用
通过查询系统表 system.parts,可以查看每个分区的 bytes_on_disk 列的值,以了解每个分区实际占用的磁盘空间大小。
SQL:
SELECT
database,
formatReadableSize(sum(bytes_on_disk)) AS total_size
FROM system.parts
WHERE database != 'system'
GROUP BY database
行数统计
SELECT
database,
table,
sum(rows) AS rows_count
FROM system.parts
WHERE database = 'system'
GROUP BY
database,
table
ORDER BY rows_count DESC
分区数统计
SELECT
database,
table,
count() AS parts_count
FROM system.parts
WHERE database = 'system'
GROUP BY
database,
table
ORDER BY parts_count DESC