system.part_log
Системная таблица system.part_log создается только в том случае, если задана серверная настройка part_log.
Содержит информацию о всех событиях, произошедших с кусками данных таблиц семейства MergeTree (например, события добавления, удаления или слияния данных).
Столбцы:
- query_id(String) — идентификатор запроса- INSERT, создавшего этот кусок.
- event_type(Enum8) — тип события. Столбец может содержать одно из следующих значений:- NEW_PART— вставка нового куска.
- MERGE_PARTS— слияние кусков.
- DOWNLOAD_PART— загрузка с реплики.
- REMOVE_PART— удаление или отсоединение из таблицы с помощью DETACH PARTITION.
- MUTATE_PART— изменение куска.
- MOVE_PART— перемещение куска между дисками.
 
- merge_reason(Enum8) — Причина события с типом- MERGE_PARTS. Может принимать одно из следующих значений:- NOT_A_MERGE— событие имеет тип иной, чем- MERGE_PARTS.
- REGULAR_MERGE— обычное слияние.
- TTL_DELETE_MERGE— очистка истекших данных.
- TTL_RECOMPRESS_MERGE— переупаковка куска.
 
- merge_algorithm(Enum8) — Алгоритм слияния для события с типом- MERGE_PARTS. Может принимать одно из следующих значений:- UNDECIDED
- HORIZONTAL
- VERTICAL
 
- event_date(Date) — дата события.
- event_time(DateTime) — время события.
- event_time_microseconds(DateTime64) — время события с точностью до микросекунд.
- duration_ms(UInt64) — длительность.
- database(String) — имя базы данных, в которой находится кусок.
- table(String) — имя таблицы, в которой находится кусок.
- part_name(String) — имя куска.
- partition_id(String) — идентификатор партиции, в которую был добавлен кусок. В столбце будет значение- all, если таблица партициируется по выражению- tuple().
- path_on_disk(String) — абсолютный путь к папке с файлами кусков данных.
- rows(UInt64) — число строк в куске.
- size_in_bytes(UInt64) — размер куска данных в байтах.
- merged_from(Array(String)) — массив имён кусков, из которых образован текущий кусок в результате слияния (также столбец заполняется в случае скачивания уже смерженного куска).
- bytes_uncompressed(UInt64) — количество прочитанных не сжатых байт.
- read_rows(UInt64) — сколько было прочитано строк при слиянии кусков.
- read_bytes(UInt64) — сколько было прочитано байт при слиянии кусков.
- peak_memory_usage(Int64) — максимальная разница между выделенной и освобождённой памятью в контексте потока.
- error(UInt16) — код ошибки, возникшей при текущем событии.
- exception(String) — текст ошибки.
Системная таблица system.part_log будет создана после первой вставки данных в таблицу MergeTree.
Пример
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
exception: