Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

system.parts

Description

Contains information about parts of MergeTree tables.

Each row describes one data part.

Columns

  • partition (String) — Partition identifier (string representation derived from the table partition key expression).

  • name (String) — Name of the data part. The part naming structure can be used to determine many aspects of the data, ingest, and merge patterns. The part naming format is the following:

    <partition_id>_<minimum_block_number>_<maximum_block_number>_<level>_<data_version>
    • Definitions:
      • partition_id - identifies the partition key
      • minimum_block_number - identifies the minimum block number in the part. ClickHouse always merges continuous blocks
      • maximum_block_number - identifies the maximum block number in the part
      • level - incremented by one with each additional merge on the part. A level of 0 indicates this is a new part that has not been merged. It is important to remember that all parts in ClickHouse are always immutable
      • data_version - optional value, incremented when a part is mutated (again, mutated data is always only written to a new part, since parts are immutable)
  • uuid (UUID) — The UUID of data part.

  • part_type (String) — The data part storing format. Possible values: Wide — each column is stored in a separate file, Compact — all columns are stored in one file. Data storing format is controlled by the min_bytes_for_wide_part and min_rows_for_wide_part settings of the MergeTree table.

  • part_storage_type (String) — The type of DataPartStorage. Possible values: Packed - most part files are stored in a single archive (projections and a few service files such as txn_version.txt are written separately), Full - each file is stored separately.

  • active (UInt8) — Flag that indicates whether the data part is active. If a data part is active, it’s used in a table. Otherwise, it’s about to be deleted. Inactive data parts appear after merging and mutating operations.

  • marks (UInt64) — The number of marks. To get the approximate number of rows in a data part, multiply marks by the index granularity (usually 8192) (this hint does not work for adaptive granularity).

  • rows (UInt64) — The number of rows.

  • files (UInt64) — The number of files in the data part.

  • bytes_on_disk (UInt64) — Total size of all the data part files in bytes.

  • data_compressed_bytes (UInt64) — Total size of compressed data in the data part. All the auxiliary files (for example, files with marks) are not included.

  • data_uncompressed_bytes (UInt64) — Total size of uncompressed data in the data part. All the auxiliary files (for example, files with marks) are not included.

  • primary_key_size (UInt64) — The amount of memory (in bytes) used by primary key values in the primary.idx/cidx file on disk.

  • marks_bytes (UInt64) — The size of the file with marks.

  • secondary_indices_compressed_bytes (UInt64) — Total size of compressed data for secondary indices in the data part. All the auxiliary files (for example, files with marks) are not included.

  • secondary_indices_uncompressed_bytes (UInt64) — Total size of uncompressed data for secondary indices in the data part. All the auxiliary files (for example, files with marks) are not included.

  • secondary_indices_marks_bytes (UInt64) — The size of the file with marks for secondary indices.

  • modification_time (DateTime) — The time the directory with the data part was modified. This usually corresponds to the time of data part creation.

  • remove_time (DateTime) — The time when the data part became inactive.

  • refcount (UInt32) — The number of places where the data part is used. A value greater than 2 indicates that the data part is used in queries or merges.

  • min_date (Date) — The minimum value of the date key in the data part.

  • max_date (Date) — The maximum value of the date key in the data part.

  • min_time (DateTime) — The minimum value of the date and time key in the data part.

  • max_time (DateTime) — The maximum value of the date and time key in the data part.

  • partition_id (String) — ID of the partition.

  • min_block_number (Int64) — The minimum number of data parts that make up the current part after merging.

  • max_block_number (Int64) — The maximum number of data parts that make up the current part after merging.

  • level (UInt32) — Depth of the merge tree. Zero means that the current part was created by insert rather than by merging other parts.

  • data_version (UInt64) — Number that is used to determine which mutations should be applied to the data part (mutations with a version higher than data_version).

  • primary_key_bytes_in_memory (UInt64) — The amount of memory (in bytes) used by primary key values. Will be 0 when primary_key_lazy_load is enabled and the key is not loaded. When non-zero the bytes live in the part itself and are accounted within jemalloc.mergetree_arena.active_bytes. They are NEVER counted in PrimaryIndexCacheBytes — those are mutually exclusive per part: an index lives either in the part (this metric) or in the shared PrimaryIndexCache (the other), depending on primary_key_lazy_load and use_primary_key_cache.

  • primary_key_bytes_in_memory_allocated (UInt64) — The amount of memory (in bytes) reserved for primary key values. Will be 0 when primary_key_lazy_load is enabled and the key is not loaded. When non-zero, included in jemalloc.mergetree_arena.active_bytes. See the note on primary_key_bytes_in_memory for the relationship with PrimaryIndexCacheBytes.

  • index_granularity_bytes_in_memory (UInt64) — The amount of memory (in bytes) used by index granularity values (will be 0 in case of primary_key_lazy_load=1 and use_primary_key_cache=1). When non-zero the bytes are part-owned and accounted within jemalloc.mergetree_arena.active_bytes.

  • index_granularity_bytes_in_memory_allocated (UInt64) — The amount of memory (in bytes) reserved for index granularity values (will be 0 in case of primary_key_lazy_load=1 and use_primary_key_cache=1). When non-zero, included in jemalloc.mergetree_arena.active_bytes.

  • is_frozen (UInt8) — Flag that shows that a partition data backup exists. 1, the backup exists. 0, the backup does not exist. For more details, see FREEZE PARTITION.

  • database (String) — Name of the database.

  • table (String) — Name of the table.

  • engine (String) — Name of the table engine without parameters.

  • disk_name (String) — Name of a disk that stores the data part.

  • path (String) — Absolute path to the folder with data part files.

  • hash_of_all_files (String) — sipHash128 of compressed files.

  • hash_of_uncompressed_files (String) — sipHash128 of uncompressed files (files with marks, index file etc.).

  • uncompressed_hash_of_compressed_files (String) — sipHash128 of data in the compressed files as if they were uncompressed.

  • delete_ttl_info_min (DateTime) — The minimum value of the date and time key for TTL DELETE rule.

  • delete_ttl_info_max (DateTime) — The maximum value of the date and time key for TTL DELETE rule.

  • move_ttl_info.expression (Array(String)) — Array of expressions. Each expression defines a TTL MOVE rule.

  • move_ttl_info.min (Array(DateTime)) — Array of date and time values. Each element describes the minimum key value for a TTL MOVE rule.

  • move_ttl_info.max (Array(DateTime)) — Array of date and time values. Each element describes the maximum key value for a TTL MOVE rule.

  • default_compression_codec (String) — The name of the codec used to compress this data part when a column has no explicit codec or uses CODEC(Default). With enable_adaptive_codec_selection, individual blocks of such columns may use other codecs; see mergeTreeCodecBlockCounts.

  • recompression_ttl_info.expression (Array(String)) — The TTL expression.

  • recompression_ttl_info.min (Array(DateTime)) — The minimum value of the calculated TTL expression within this part. Used to understand whether we have at least one row with expired TTL.

  • recompression_ttl_info.max (Array(DateTime)) — The maximum value of the calculated TTL expression within this part. Used to understand whether we have all rows with expired TTL.

  • group_by_ttl_info.expression (Array(String)) — The TTL expression.

  • group_by_ttl_info.min (Array(DateTime)) — The minimum value of the calculated TTL expression within this part. Used to understand whether we have at least one row with expired TTL.

  • group_by_ttl_info.max (Array(DateTime)) — The maximum value of the calculated TTL expression within this part. Used to understand whether we have all rows with expired TTL.

  • rows_where_ttl_info.expression (Array(String)) — The TTL expression.

  • rows_where_ttl_info.min (Array(DateTime)) — The minimum value of the calculated TTL expression within this part. Used to understand whether we have at least one row with expired TTL.

  • rows_where_ttl_info.max (Array(DateTime)) — The maximum value of the calculated TTL expression within this part. Used to understand whether we have all rows with expired TTL.

  • projections (Array(String)) — The list of projection names calculated for this part.

  • visible (UInt8) — Flag which indicated whether this part is visible for SELECT queries.

  • creation_tid (Tuple(UInt64, UInt64, UUID)) — ID of transaction that has created/is trying to create this object.

  • removal_tid_lock (UInt64) — Hash of removal_tid, used to lock an object for removal.

  • removal_tid (Tuple(UInt64, UInt64, UUID)) — ID of transaction that has removed/is trying to remove this object

  • creation_csn (UInt64) — CSN of transaction that has created this object

  • removal_csn (UInt64) — CSN of transaction that has removed this object

  • has_lightweight_delete (UInt8) — The flag which indicated whether the part has lightweight delete mask.

  • last_removal_attempt_time (DateTime) — The last time the server tried to delete this part.

  • removal_state (String) — The current state of part removal process.

Aliases:

  • bytes — Alias for bytes_on_disk.
  • marks_size — Alias for marks_bytes.
  • part_name — Alias for name.

Example

SELECT * FROM system.parts LIMIT 1 FORMAT Vertical;
Row 1:
──────
partition:                             tuple()
name:                                  all_1_4_1_6
part_type:                             Wide
part_storage_type:                     Full
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:                     []

See Also

Navigation