Skip to main content
Skip to main content

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.
  • 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.
  • 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.
  • 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).
  • 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).
  • 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 (in case when there is no explicit codec for columns).
  • 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
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