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

Описание

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

Столбцы

  • hostname (LowCardinality(String)) — Имя хоста сервера, выполняющего запрос.
  • event_date (Date) — Дата, когда произошло событие.
  • event_time (DateTime) — Дата и время, когда произошло событие.
  • event_time_microseconds (DateTime64(6)) — Дата и время события с точностью до микросекунд.
  • id (UInt64) — ID процессора.
  • parent_ids (Array(UInt64)) — ID родительских процессоров.
  • plan_step (UInt64) — ID шага плана запроса, создавшего этот процессор. Значение равно нулю, если процессор не был добавлен ни одним шагом.
  • plan_step_name (String) — Имя шага плана запроса, создавшего этот процессор. Значение пусто, если процессор не был добавлен ни одним шагом.
  • plan_step_description (String) — Описание шага плана запроса, создавшего этот процессор. Значение пусто, если процессор не был добавлен ни одним шагом.
  • 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) — Количество байтов, сгенерированных процессором.
  • processor_uniq_id (String) — Уникальный ID процессора в конвейере.
  • step_uniq_id (String) — Уникальный ID шага в плане.

Пример

Query
EXPLAIN PIPELINE
SELECT sleep(1)
┌─explain─────────────────────────┐
│ (Expression)                    │
│ ExpressionTransform             │
│   (SettingQuotaAndLimits)       │
│     (ReadFromStorage)           │
│     SourceFromSingleChunk 01
└─────────────────────────────────┘

SELECT sleep(1)
SETTINGS log_processors_profiles = 1
Query id: feb5ed16-1c24-4227-aa54-78c02b3b27d4
┌─sleep(1)─┐
0
└──────────┘
1 rows in set. Elapsed: 1.018 sec.

SELECT
    name,
    elapsed_us,
    input_wait_elapsed_us,
    output_wait_elapsed_us
FROM system.processors_profile_log
WHERE query_id = 'feb5ed16-1c24-4227-aa54-78c02b3b27d4'
ORDER BY name ASC
Response
┌─name────────────────────┬─elapsed_us─┬─input_wait_elapsed_us─┬─output_wait_elapsed_us─┐
│ ExpressionTransform     │    1000497 │                  2823 │                    197 │
│ LazyOutputFormat        │         36 │               1002188 │                      0 │
│ LimitsCheckingTransform │         10 │               1002994 │                    106 │
│ NullSource              │          5 │               1002074 │                      0 │
│ NullSource              │          1 │               1002084 │                      0 │
│ SourceFromSingleChunk   │         45 │                  4736 │                1000819 │
└─────────────────────────┴────────────┴───────────────────────┴────────────────────────┘
Здесь можно увидеть следующее:
  • 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.

См. также

Последнее изменение 10 июня 2026 г.