跳转到主要内容

描述

包含有关 MergeTree 表中各个数据部分的信息。 每一行描述一个数据部分。

分栏

  • partition (String) — 分区标识符 (由表分区键表达式推导出的字符串表示形式) 。
  • name (String) — 数据部分的名称。通过数据部分的命名结构,可以判断数据、写入和合并模式等诸多信息。数据部分的命名格式如下:
<partition_id>_<minimum_block_number>_<maximum_block_number>_<level>_<data_version>
  • 定义:
    • 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_partmin_rows_for_wide_part 设置决定。
  • active (UInt8) — 指示数据分片是否为活动状态的标志。如果数据分片处于活动状态,则会在表中使用。否则,它将被删除。非活动数据分片会在合并和变更操作后出现。
  • marks (UInt64) — 标记数。要获取数据分片中的近似行数,可将 marks 乘以索引粒度 (通常为 8192) (此方法不适用于自适应粒度) 。
  • rows (UInt64) — 行数。
  • files (UInt64) — 数据 part 中的文件数量。
  • bytes_on_disk (UInt64) — 所有数据分片文件的总大小 (以字节为单位) 。
  • data_compressed_bytes (UInt64) — 数据部分中压缩数据的总大小。不包括任何辅助文件 (例如标记文件) 。
  • data_uncompressed_bytes (UInt64) — 数据分片中未压缩数据的总大小。不包括所有辅助文件 (例如标记文件) 。
  • primary_key_size (UInt64) — 磁盘上 primary.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 (Int64) — 合并后组成当前分片的数据部分中的最小编号。
  • max_block_number (Int64) — 合并后组成当前数据片段的各数据部分中的最大编号。
  • level (UInt32) — 合并树的层级。值为零表示当前分片是通过插入生成的,而不是通过合并其他分片生成的。
  • data_version (UInt64) — 用于确定哪些 mutation 应应用到数据分片上的数字 (版本高于 data_version 的 mutation) 。
  • primary_key_bytes_in_memory (UInt64) — 主键值占用的内存大小 (以字节为单位) 。当启用 primary_key_lazy_load 且键尚未加载时,该值为 0。当该值非零时,这些字节驻留在 part 本身中,并计入 jemalloc.mergetree_arena.active_bytes。它们绝不会被计入 PrimaryIndexCacheBytes —— 对于每个 part,这两者是互斥的:索引要么位于 part 中 (此指标) ,要么位于共享的 PrimaryIndexCache 中 (另一项指标) ,具体取决于 primary_key_lazy_loaduse_primary_key_cache
  • primary_key_bytes_in_memory_allocated (UInt64) — 为主键值预留的内存大小 (以字节为单位) 。启用 primary_key_lazy_load 且键尚未加载时,该值为 0。值非 0 时,会计入 jemalloc.mergetree_arena.active_bytes。关于它与 PrimaryIndexCacheBytes 的关系,请参见 primary_key_bytes_in_memory 的说明。
  • index_granularity_bytes_in_memory (UInt64) — 索引粒度值占用的内存大小 (以字节为单位) (在 primary&#95;key&#95;lazy&#95;load=1use&#95;primary&#95;key&#95;cache=1 的情况下,该值为 0) 。当其非零时,这些字节属于部分共享所有权,并计入 jemalloc.mergetree_arena.active_bytes
  • index_granularity_bytes_in_memory_allocated (UInt64) — 为索引粒度值预留的内存大小 (以字节为单位) (在 primary_key_lazy_load=1 且 use_primary_key_cache=1 时为 0) 。当其非零时,会计入 jemalloc.mergetree_arena.active_bytes
  • is_frozen (UInt8) — 表示分区数据备份是否存在的标志。1 表示备份存在。0 表示备份不存在。更多信息,请参见 FREEZE PARTITION。
  • database (String) — 数据库名称。
  • table (字符串) — 表名。
  • engine (String) — 不含参数的表引擎名称。
  • disk_name (String) — 用于存储数据部分的磁盘名称。
  • path (String) — 包含数据分片文件的文件夹的绝对路径。
  • hash_of_all_files (String) — 所有压缩文件的 sipHash128。
  • hash_of_uncompressed_files (String) — 未压缩文件 (如带标记的文件、索引文件等) 的 sipHash128 值。
  • uncompressed_hash_of_compressed_files (字符串) — 将压缩文件中的数据视为未压缩时计算得到的 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.min (Array(DateTime)) — 日期和时间值组成的数组。每个元素表示 TTL MOVE 规则的最小键值。
  • move_ttl_info.max (Array(DateTime)) — 日期和时间值数组。每个元素表示 TTL MOVE 规则的最大键值。
  • default_compression_codec (String) — 用于压缩该数据分片的编解码器名称 (如果列未显式指定编解码器) 。
  • recompression_ttl_info.expression (Array(String)) — TTL 表达式。
  • recompression_ttl_info.min (Array(DateTime)) — 此数据片段中计算得到的 TTL 表达式的最小值。用于判断是否至少存在一行数据的 TTL 已过期。
  • recompression_ttl_info.max (Array(DateTime)) — 此分片内计算所得 TTL 表达式的最大值。用于判断是否已包含所有 TTL 已过期的行。
  • group_by_ttl_info.expression (Array(String)) — TTL 表达式。
  • group_by_ttl_info.min (Array(DateTime)) — 此分片内计算得出的 TTL 表达式最小值。用于判断是否至少有一行的 TTL 已过期。
  • group_by_ttl_info.max (Array(DateTime)) — 此分片内计算出的 TTL 表达式的最大值。用于判断是否已包含所有 TTL 已过期的行。
  • rows_where_ttl_info.expression (Array(String)) — TTL 表达式。
  • rows_where_ttl_info.min (Array(DateTime)) — 此分区内计算得到的 TTL 表达式最小值。用于判断是否至少有一行数据的 TTL 已过期。
  • rows_where_ttl_info.max (Array(DateTime)) — 此 part 中计算得到的 TTL 表达式的最大值。用于判断是否已包含所有 TTL 已过期的行。
  • projections (Array(String)) — 为该部分计算出的投影名称列表。
  • visible (UInt8) — 指示此部分对 SELECT 查询是否可见的标志。
  • creation_tid (Tuple(UInt64, UInt64, UUID)) — 已创建或正尝试创建此对象的事务 ID。
  • removal_tid_lock (UInt64) — removal&#95;tid 的哈希值,用于将对象锁定为待删除状态。
  • removal_tid (Tuple(UInt64, UInt64, UUID)) — 已移除或正尝试移除此对象的事务 ID
  • creation_csn (UInt64) — 创建该对象的事务 CSN
  • removal_csn (UInt64) — 删除该对象的事务的 CSN
  • has_lightweight_delete (UInt8) — 指示该 part 是否带有轻量级删除掩码的标志。
  • last_removal_attempt_time (DateTime) — 服务器上次尝试删除该部分的时间。
  • removal_state (String) — 零件移除过程的当前状态。

示例

SELECT * FROM system.parts LIMIT 1 FORMAT Vertical;
Row 1:
──────
partition:                             tuple()
name:                                  all_1_4_1_6
part_type:                             Wide
active:                                1
marks:                                 2
rows:                                  6
bytes_on_disk:                         310
data_compressed_bytes:                 157
data_uncompressed_bytes:               91
secondary_indices_compressed_bytes:    58
secondary_indices_uncompressed_bytes:  6
secondary_indices_marks_bytes:         48
marks_bytes:                           144
modification_time:                     2020-06-18 13:01:49
remove_time:                           1970-01-01 00:00:00
refcount:                              1
min_date:                              1970-01-01
max_date:                              1970-01-01
min_time:                              1970-01-01 00:00:00
max_time:                              1970-01-01 00:00:00
partition_id:                          all
min_block_number:                      1
max_block_number:                      4
level:                                 1
data_version:                          6
primary_key_bytes_in_memory:           8
primary_key_bytes_in_memory_allocated: 64
is_frozen:                             0
database:                              default
table:                                 months
engine:                                MergeTree
disk_name:                             default
path:                                  /var/lib/clickhouse/data/default/months/all_1_4_1_6/
hash_of_all_files:                     2d0657a16d9430824d35e327fcbd87bf
hash_of_uncompressed_files:            84950cc30ba867c77a408ae21332ba29
uncompressed_hash_of_compressed_files: 1ad78f1c6843bbfb99a2c931abe7df7d
delete_ttl_info_min:                   1970-01-01 00:00:00
delete_ttl_info_max:                   1970-01-01 00:00:00
move_ttl_info.expression:              []
move_ttl_info.min:                     []
move_ttl_info.max:                     []

另请参阅

最后修改于 2026年6月10日