system.parts
包含有关 MergeTree 表的分片的信息。
每一行描述一个数据分片。
列:
-
partition
(String) – 分区名称。要了解什么是分区,请参见 ALTER 查询的描述。格式:
YYYYMM
用于按月自动分区。any_string
手动分区时使用。
-
name
(String) – 数据分片的名称。分片命名结构可以用于确定数据、摄取和合并模式的许多方面。分片命名格式如下:
- 定义:
partition_id
- 标识分区键minimum_block_number
- 标识分片中的最小块编号。ClickHouse 始终合并连续块maximum_block_number
- 标识分片中的最大块编号level
- 每次对分片进行合并时加一。级别为 0 表示这是一个尚未合并的新分片。重要的是要记住,ClickHouse 中所有分片始终是不可变的data_version
- 可选值,分片发生变化时递增(同样,由于分片是不可变的,变化的数据始终只会写入新的分片)
-
uuid
(UUID) - 数据分片的 UUID。 -
part_type
(String) — 存储数据分片的格式。可能的值:
-
Wide
— 每个列存储在文件系统中的单独文件。 -
Compact
— 所有列存储在文件系统中的一个文件中。数据存储格式由 MergeTree 表的
min_bytes_for_wide_part
和min_rows_for_wide_part
设置控制。
-
-
active
(UInt8) – 表示数据分片是否处于活动状态的标志。如果数据分片处于活动状态,则用于表中。否则,它将被删除。合并后,非活动数据分片仍然保留。 -
marks
(UInt64) – 标记的数量。要获取数据分片中行的近似数量,将marks
乘以索引粒度(通常为 8192)(此提示不适用于自适应粒度)。 -
rows
(UInt64) – 行数。 -
bytes_on_disk
(UInt64) – 数据分片文件的总大小(以字节为单位)。 -
data_compressed_bytes
(UInt64) – 数据分片中压缩数据的总大小。所有辅助文件(例如,标记文件)不包括在内。 -
data_uncompressed_bytes
(UInt64) – 数据分片中未压缩数据的总大小。所有辅助文件(例如,标记文件)不包括在内。 -
primary_key_size
(UInt64) – 主键值在主.idx/cidx 文件中占用的内存量(以字节为单位)。 -
marks_bytes
(UInt64) – 包含标记的文件的大小。 -
secondary_indices_compressed_bytes
(UInt64) – 数据分片中二级索引的压缩数据的总大小。所有辅助文件(例如,标记文件)不包括在内。 -
secondary_indices_uncompressed_bytes
(UInt64) – 数据分片中二级索引的未压缩数据的总大小。所有辅助文件(例如,标记文件)不包括在内。 -
secondary_indices_marks_bytes
(UInt64) – 二级索引的标记文件的大小。 -
modification_time
(DateTime) – 数据分片目录被修改的时间。这通常对应于数据分片创建的时间。 -
remove_time
(DateTime) – 数据分片变为非活动状态的时间。 -
refcount
(UInt32) – 数据分片使用的场所数量。大于 2 的值表示数据分片用于查询或合并。 -
min_date
(Date) – 数据分片中日期键的最小值。 -
max_date
(Date) – 数据分片中日期键的最大值。 -
min_time
(DateTime) – 数据分片中日期和时间键的最小值。 -
max_time
(DateTime) – 数据分片中日期和时间键的最大值。 -
partition_id
(String) – 分区的 ID。 -
min_block_number
(UInt64) – 合并后组成当前分片的最小数据块编号。 -
max_block_number
(UInt64) – 合并后组成当前分片的最大数据块编号。 -
level
(UInt32) – 合并树的深度。零表示当前分片是通过插入创建的,而不是通过合并其他分片。 -
data_version
(UInt64) – 用于确定应应用于数据分片的变更的数字(变更的版本高于data_version
)。 -
primary_key_bytes_in_memory
(UInt64) – 占用的主键值内存量(以字节为单位)(在primary_key_lazy_load=1
和use_primary_key_cache=1
的情况下将为0
)。 -
primary_key_bytes_in_memory_allocated
(UInt64) – 为主键值分配的内存量(以字节为单位)(在primary_key_lazy_load=1
和use_primary_key_cache=1
的情况下将为0
)。 -
is_frozen
(UInt8) – 表示存在分区数据备份的标志。1,备份存在。0,备份不存在。有关更多详细信息,请参见 FREEZE PARTITION -
database
(String) – 数据库名称。 -
table
(String) – 表名称。 -
engine
(String) – 没有参数的表引擎名称。 -
path
(String) – 数据分片文件夹的绝对路径。 -
disk_name
(String) – 存储数据分片的磁盘名称。 -
hash_of_all_files
(String) – sipHash128 的压缩文件的哈希值。 -
hash_of_uncompressed_files
(String) – sipHash128 的未压缩文件的哈希值(标记文件、索引文件等)。 -
uncompressed_hash_of_compressed_files
(String) – sipHash128 的压缩文件数据如同未压缩。 -
delete_ttl_info_min
(DateTime) — TTL DELETE 规则 的日期和时间键的最小值。 -
delete_ttl_info_max
(DateTime) — TTL DELETE 规则 的日期和时间键的最大值。 -
move_ttl_info.expression
(Array(String)) — 表达式数组。每个表达式定义一个 TTL MOVE 规则。
move_ttl_info.expression
数组主要出于向后兼容性而保留,现在检查 TTL MOVE
规则的最简单方法是使用 move_ttl_info.min
和 move_ttl_info.max
字段。
-
move_ttl_info.min
(Array(DateTime)) — 日期和时间值数组。每个元素描述一个 TTL MOVE 规则 的最小键值。 -
move_ttl_info.max
(Array(DateTime)) — 日期和时间值数组。每个元素描述一个 TTL MOVE 规则 的最大键值。 -
bytes
(UInt64) –bytes_on_disk
的别名。 -
marks_size
(UInt64) –marks_bytes
的别名。
示例
另请参见