Перейти к основному содержимому
Перейти к основному содержимому

system.processors_profile_log

Запросы в ClickHouse Cloud

Данные в этой системной таблице хранятся локально на каждом узле в ClickHouse Cloud. Для получения полного представления о всех данных необходимо использовать функцию clusterAllReplicas. Подробности см. здесь.

Эта таблица содержит профилирование на уровне процессоров (которое вы можете найти в EXPLAIN PIPELINE).

Столбцы:

  • hostname (LowCardinality(String)) — Имя хоста сервера, выполняющего запрос.
  • event_date (Date) — Дата, когда произошло событие.
  • event_time (DateTime) — Дата и время, когда произошло событие.
  • event_time_microseconds (DateTime64) — Дата и время с точностью до микросекунд, когда произошло событие.
  • id (UInt64) — ID процессора
  • parent_ids (Array(UInt64)) — ID родительских процессоров
  • plan_step (UInt64) — ID шага плана запроса, который создал этот процессор. Значение равно нулю, если процессор не был добавлен с какого-либо шага.
  • plan_group (UInt64) — Группа процессора, если она была создана шагом плана запроса. Группа представляет собой логическую разбивку процессоров, добавленных с одного и того же шага плана запроса. Группа используется только для улучшения внешнего вида результата EXPLAIN PIPELINE.
  • initial_query_id (String) — ID исходного запроса (для выполнения распределенного запроса).
  • query_id (String) — ID запроса
  • name (LowCardinality(String)) — Имя процессора.
  • elapsed_us (UInt64) — Количество микросекунд, в течение которых этот процессор выполнялся.
  • input_wait_elapsed_us (UInt64) — Количество микросекунд, в течение которых этот процессор ждал данные (от другого процессора).
  • output_wait_elapsed_us (UInt64) — Количество микросекунд, в течение которых этот процессор ждал, потому что выходной порт был переполнен.
  • input_rows (UInt64) — Количество строк, потребленных процессором.
  • input_bytes (UInt64) — Количество байтов, потребленных процессором.
  • output_rows (UInt64) — Количество строк, сгенерированных процессором.
  • output_bytes (UInt64) — Количество байтов, сгенерированных процессором. Пример

Запрос:

Результат:

Здесь вы можете увидеть:

  • ExpressionTransform выполнял функцию sleep(1), поэтому его work займет 1e6, и, следовательно, elapsed_us > 1e6.
  • SourceFromSingleChunk нужно было ждать, потому что ExpressionTransform не принимает никаких данных в процессе выполнения sleep(1), поэтому он будет в состоянии PortFull на 1e6 мкс, и, следовательно, output_wait_elapsed_us > 1e6.
  • LimitsCheckingTransform/NullSource/LazyOutputFormat нужно было ждать, пока ExpressionTransform выполнит sleep(1), чтобы обработать результат, так что input_wait_elapsed_us > 1e6.

См. также