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

system.asynchronous_loader

Запросы в ClickHouse Cloud

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

Содержит информацию и статус для недавних асинхронных задач (например, для загружаемых таблиц). Таблица содержит строку для каждой задачи. Существует инструмент для визуализации информации из этой таблицы utils/async_loader_graph.

Пример:

Колонки:

  • job (String) - Имя задачи (может не быть уникальным).
  • job_id (UInt64) - Уникальный ID задачи.
  • dependencies (Array(UInt64)) - Список ID задач, которые должны быть выполнены до этой задачи.
  • dependencies_left (UInt64) - Текущее количество оставшихся зависимостей для выполнения.
  • status (Enum) - Текущий статус загрузки задачи: PENDING: Задача на загрузку еще не начата. OK: Задача на загрузку выполнена и была успешной. FAILED: Задача на загрузку выполнена и завершилась с ошибкой. CANCELED: Задача на загрузку не будет выполнена из-за удаления или ошибки зависимости.

Ожидающая задача может находиться в одном из следующих состояний:

  • is_executing (UInt8) - Задача в настоящее время выполняется работником.
  • is_blocked (UInt8) - Задача ждет завершения своих зависимостей.
  • is_ready (UInt8) - Задача готова к выполнению и ждет работника.
  • elapsed (Float64) - Секунды, прошедшие с начала выполнения. Ноль, если задача не начата. Общее время выполнения, если задача завершена.

У каждой задачи есть связанный пул, и она запускается в этом пуле. Каждый пул имеет постоянный приоритет и изменяемое максимальное количество работников. Задачи с более высоким приоритетом (меньшее значение priority) выполняются первыми. Никакая задача с более низким приоритетом не запускается, пока есть хотя бы одна задача с более высоким приоритетом, готовая или выполняемая. Приоритет задачи может быть повышен (но не может быть снижен) за счет приоритизации. Например, задачи для загрузки и запуска таблицы будут приоритизированы, если входящий запрос требует эту таблицу. Возможно повысить приоритет задачи во время ее выполнения, но задача не перемещается из своего execution_pool в вновь назначенный pool. Задача использует pool для создания новых задач, чтобы избежать инверсии приоритета. Уже начатые задачи не прерываются более высокоприоритетными задачами и всегда выполняются до завершения после старта.

  • pool_id (UInt64) - ID пула, в настоящее время назначенного задаче.

  • pool (String) - Имя пула pool_id.

  • priority (Int64) - Приоритет пула pool_id.

  • execution_pool_id (UInt64) - ID пула, в котором выполняется задача. Равно первоначально назначенному пулу до начала выполнения.

  • execution_pool (String) - Имя пула execution_pool_id.

  • execution_priority (Int64) - Приоритет пула execution_pool_id.

  • ready_seqno (Nullable(UInt64)) - Не равен нулю для готовых задач. Работник извлекает следующую задачу для выполнения из готовой очереди своего пула. Если есть несколько готовых задач, выбирается задача с наименьшим значением ready_seqno.

  • waiters (UInt64) - Количество потоков, ожидающих этой задачи.

  • exception (Nullable(String)) - Не равен нулю для завершившихся с ошибкой и отмененных задач. Содержит сообщение об ошибке, возникшее во время выполнения запроса, или ошибку, приведшую к отмене этой задачи, вместе с цепочкой имен задач зависимости.

Моменты времени во время жизни задачи:

  • schedule_time (DateTime64) - Время, когда задача была создана и запланирована для выполнения (обычно со всеми ее зависимостями).
  • enqueue_time (Nullable(DateTime64)) - Время, когда задача стала готовой и была добавлена в очередь готовых задач своего пула. Нуль, если задача еще не готова.
  • start_time (Nullable(DateTime64)) - Время, когда работник извлекает задачу из очереди готовых задач и начинает ее выполнение. Нуль, если задача еще не начата.
  • finish_time (Nullable(DateTime64)) - Время, когда выполнение задачи завершено. Нуль, если задача еще не завершена.