Skip to main content


The system.part_log table is created only if the part_log server setting is specified.

This table contains information about events that occurred with data parts in the MergeTree family tables, such as adding or merging data.

The system.part_log table contains the following columns:

  • hostname (LowCardinality(String)) — Hostname of the server executing the query.
  • query_id (String) — Identifier of the INSERT query that created this data part.
  • event_type (Enum8) — Type of the event that occurred with the data part. Can have one of the following values:
    • NewPart — Inserting of a new data part.
    • MergeParts — Merging of data parts.
    • DownloadParts — Downloading a data part.
    • RemovePart — Removing or detaching a data part using DETACH PARTITION.
    • MutatePart — Mutating of a data part.
    • MovePart — Moving the data part from the one disk to another one.
  • merge_reason (Enum8) — The reason for the event with type MERGE_PARTS. Can have one of the following values:
    • NotAMerge — The current event has the type other than MERGE_PARTS.
    • RegularMerge — Some regular merge.
    • TTLDeleteMerge — Cleaning up expired data.
    • TTLRecompressMerge — Recompressing data part with the.
  • merge_algorithm (Enum8) — Merge algorithm for the event with type MERGE_PARTS. Can have one of the following values:
    • Undecided
    • Horizontal
    • Vertical
  • event_date (Date) — Event date.
  • event_time (DateTime) — Event time.
  • event_time_microseconds (DateTime64) — Event time with microseconds precision.
  • duration_ms (UInt64) — Duration.
  • database (String) — Name of the database the data part is in.
  • table (String) — Name of the table the data part is in.
  • part_name (String) — Name of the data part.
  • partition_id (String) — ID of the partition that the data part was inserted to. The column takes the all value if the partitioning is by tuple().
  • path_on_disk (String) — Absolute path to the folder with data part files.
  • rows (UInt64) — The number of rows in the data part.
  • size_in_bytes (UInt64) — Size of the data part in bytes.
  • merged_from (Array(String)) — An array of names of the parts which the current part was made up from (after the merge).
  • bytes_uncompressed (UInt64) — Size of uncompressed bytes.
  • read_rows (UInt64) — The number of rows was read during the merge.
  • read_bytes (UInt64) — The number of bytes was read during the merge.
  • peak_memory_usage (Int64) — The maximum difference between the amount of allocated and freed memory in context of this thread.
  • error (UInt16) — The code number of the occurred error.
  • exception (String) — Text message of the occurred error.

The system.part_log table is created after the first inserting data to the MergeTree table.


SELECT * FROM system.part_log LIMIT 1 FORMAT Vertical;
Row 1:
query_id: 983ad9c7-28d5-4ae1-844e-603116b7de31
event_type: NewPart
merge_reason: NotAMerge
merge_algorithm: Undecided
event_date: 2021-02-02
event_time: 2021-02-02 11:14:28
event_time_microseconds: 2021-02-02 11:14:28.861919
duration_ms: 35
database: default
table: log_mt_2
part_name: all_1_1_0
partition_id: all
path_on_disk: db/data/default/log_mt_2/all_1_1_0/
rows: 115418
size_in_bytes: 1074311
merged_from: []
bytes_uncompressed: 0
read_rows: 0
read_bytes: 0
peak_memory_usage: 0
error: 0